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]])
总结:不同维度用逗号隔开,取切片要用冒号,多维数组取步长要用冒号