当前位置: 首页 > news >正文

Numpy索引详解(数值索引,列表索引,布尔索引)

数值索引

数值索引类似列表索引操作使用[],参数为下标,[0,len-1),高维数组的索引使用多个[]连用分别代表一维索引,二维索引...

import numpy as np
import torchnp.random.seed(1)
data1 = np.arange(5)
data2 = np.arange(15).reshape(3,5)
print(data1,end='\n\n')
print(data2,end='\n\n')print(data1[1])
print(data2[1][2])# [0 1 2 3 4]
# 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]]
# 
# 1
# 7

列表索引

列表索引在list中不支持,但ndarray可用

列表索引可以将多个索引合在一个列表中作为索引参数

格式为[dim1_index,dim2_index...]

同样也可以将列表换为ndarray或切片形式

import numpy as np
import torchnp.random.seed(1)
data1 = np.arange(5)
data2 = np.arange(15).reshape(3,5)
print(data1,end='\n\n')
print(data2,end='\n\n')print(data1[[0,1,3]])
print(data2[[0,1],[1,3]])print(data2[:,[1,2]])# [0 1 2 3 4]
# 
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]]
# 
# [0 1 3]
# [1 8]
# [[ 1  2]
#  [ 6  7]
#  [11 12]]

注意如果列表索引中若使用二维数组作为索引列表,则会分别取出该维度对应索引中的所有元素

import numpy as np
import torchnp.random.seed(1)
data1 = np.arange(5)
data2 = np.arange(15).reshape(3,5)
print(data2[[[0],[1]],[2,3]])
print(data2[[0,1],[2,3]])# [[2 3]
#  [7 8]]
# [2 8]

这里可以看到[[0],[1]]是把该维度所有元素取出再进行下一维度的索引,而若只使用[0,1]则会与下一维度的索引列表进行两两匹配

布尔索引

布尔索引就是把索引列表换为布尔列表,该列表要与被索引的列表等长,值为True则对应位置保留。

import numpy as np
import torchnp.random.seed(1)
data1 = np.arange(5)
data2 = np.arange(15).reshape(3,5)
print(data1[[True,True,False,True,False]])
# [0 1 3]

同样我们可以设置条件筛选来返回布尔列表,然后重新进行索引

import numpy as np
import torchnp.random.seed(1)
data1 = np.arange(5)
data2 = np.arange(15).reshape(3,5)
print(data2,end='\n\n')print(data2>5)print(data2[data2 > 5])# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]]
# 
# [[False False False False False]
#  [False  True  True  True  True]
#  [ True  True  True  True  True]]
# [ 6  7  8  9 10 11 12 13 14]

http://www.lryc.cn/news/439533.html

相关文章:

  • 大数据新视界 --大数据大厂之MongoDB与大数据:灵活文档数据库的应用场景
  • 三年 Sparker 都不一定知道的算子内幕
  • PG表空间
  • 谷粒商城のElasticsearch
  • 排队免单模式小程序开发
  • 从OracleCloudWorld和财报看Oracle的转变
  • 搭建 PHP
  • kubernetes技术详解,带你深入了解k8s
  • Gateway学习笔记
  • 创造增强叙事的互动:Allison Crank的沉浸式体验设计理念
  • Requests-HTML模块怎样安装和使用?
  • [网络]从零开始的计算机网络基础知识讲解
  • wifiip地址可以随便改吗?wifi的ip地址怎么改变
  • 黑马十天精通MySQL知识点
  • 如何在 Vue 3 + Element Plus 项目中实现动态设置主题色以及深色模式切换
  • Android 如何实现搜索功能:本地搜索?数据模型如何设计?数据如何展示和保存?
  • 【K230 实战项目】气象时钟
  • 什么是 HTTP/3?下一代 Web 协议
  • IDEA Project不显示/缺失文件
  • 浅谈vue2.0与vue3.0的区别(整理十六点)
  • 深入理解 MySQL MVCC:多版本并发控制的核心机制
  • Qt6编译达梦8数据库驱动插件
  • 什么是机器学习力场
  • USB组合设备——串口+鼠标+键盘
  • python学习——对无人机影像有RGB转换到HSV
  • 【南方科技大学】CS315 Computer Security 【Lab2 Buffer Overflow】
  • 持续集成与持续交付CI/CD
  • C++学习笔记之变量作用域
  • 解决跨境电商平台账号无法访问的常见问题
  • P2847 [USACO16DEC] Moocast G