【python】numpy库ndarray多维数组的索引和切片详解与实例

numpy库多维数组的类型和列表的类型非常类似,同样有索引和切片功能:

  • 索引:获取数组中特定位置元素的过程
  • 切片:获取数组元素子集的过程

1、一维数组的索引和切片:与Python的列表类似

In [34]: a = np.arange(10)

In [35]: a[0]
Out[35]: 0

In [36]: a[1:4:2]  #起始编号: 终止编号(不含): 步长,3元素冒号分割
Out[36]: array([1, 3])

2、多维数组的索引

In [37]: a = np.arange(12).reshape([3,4])

In [38]: a
Out[38]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11]])
#每个维度一个索引值,逗号分割
In [39]: a[1,1]
Out[39]: 5
#每个维度取切片用冒号,逗号分割
In [40]: a[1:,1:]
Out[40]:
array([[ 5,  6,  7],
       [ 9, 10, 11]])

#每个维度可以使用步长跳跃切片
In [41]: a[::2,1]
Out[41]: array([1, 9])

In [42]: a[::2,1:]
Out[42]:
array([[ 1,  2,  3],
       [ 9, 10, 11]])
#多维数组取步长要用冒号
In [44]: a[0::2,1:]
Out[44]:
array([[ 1,  2,  3],
       [ 9, 10, 11]])

总结:不同维度用逗号隔开,取切片要用冒号,多维数组取步长要用冒号

你可能感兴趣的:(python)