对于一维数组,其索引和分片与Python内置的List类型类似,这里就不赘述了,所需要注意的就是,分片的类型总是和原对象的类型相同。
重点讲解一下多维数组的索引和分片,这里以一个二维数组为例。
假设我们创建的一个二维数组(可以理解为矩阵)是这样的:
>>> M=array([[1,2,3],[4,5,6],[7,8,9]])
>>> M
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
由于是二维,所以索引可能会得到一整行,或者单个:
>>> M[0]
array([1, 2, 3])
>>> M[2,2]
9
对于分片也是可行的,例如我们需要提取从第一行到第二行,第二列到第三列的数构成的子数组:
>>> sub_m=M[0:2,1:]
>>> sub_m
array([[2, 3],
[5, 6]])
当然,还可以使用与Python原生分片技巧类似的方式实现。例如,我只需要第二列的数据:
>>> col2=M[:,1]
>>> col2
array([2, 5, 8])
另一种方法是使用三个小圆点(…),如下:
>>> col2=M[...,1]
>>> col2
array([2, 5, 8])
评论