数组索引和切片
2021-8-1
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property

 
ndarray对象的内容可以通过索引或切片来访问和修改,与Pythonlist的切片操作一样。
NumPy比一般的Python序列提供更多的索引方式。除了之前的用整数和切片的索引外,数组可以由整数数组索引、布尔索引及花式索引

简单索引和切片

ndarray数组可以基于0 - n的下标进行索引,切片对象可以通过内置的slice函数,并设置start, stopstep参数进行,从原数组中切割出一个新数组:
 
也可以通过冒号分隔切片参数 start:stop:step 来进行切片操作:
 
切片还可以包括省略号 来使选择元组的长度与数组的维度相同,如果在行位置使用省略号,它将返回包含行中元素的 ndarray
 
  • 如果数组是一维的,那么索引和切片就是跟python的列表是一样的。
  • 如果是多维的(以二维为例),那么在中括号中,给两个值,两个值是通过逗号分隔的,逗号前面的是行,逗号后面的是列。如果中括号中只有一个值,那么就是代表的是行。
  • 如果是多维数组(以二维为例),那么行的部分和列的部分,都是遵循一维数组的方式,可以使用整形,切片,还可以使用中括号的形式,来代表不连续的。比如a[[1,2],[3,4]],那么返回的就是(1,3),(2,4)的两个值。
 
 
 

整数数组索引

以下实例获取数组中(0,0),(1,1)和(2,0)位置处的元素
 
 

布尔索引

可以通过一个布尔数组来索引目标数组。布尔索引通过布尔运算来获取符合指定条件的元素的数组

过滤 NaN

值的替换

 
 

花式索引

花式索引指的是利用整数数组进行索引。
花式索引根据索引数组的值作为目标数组的某个轴的下标来取值。对于使用一维整型数组作为索引,如果目标是一维数组,那么索引的结果就是对应下标的行,如果目标是二维数组,那么就是对应位置的元素。
花式索引跟切片不一样,它总是将数据复制到新数组中。

传入顺序索引数组

传入倒序索引数组

 

传入多个索引数组(要使用np.ix_)

  • Numpy
  • Ndarray对象数组的广播机制
    目录