Python NumPy:引用列

时间:2013-02-02 05:29:47

标签: python numpy

为什么array1[:][1] != array1[:,1]

例如:

array1 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array1[1] ## Output: array([4,5,6]) as expected
array1[:,1] ## Output: array([2, 5, 8]) as expected
array1[:][1] ## Output: array([4,5,6]) which isn't what I expected!

使用双括号引用时,是否先执行array1[:]组件返回完整的2D数组?因此array1[:][1] == array1[1]

1 个答案:

答案 0 :(得分:0)

NumPy会将a[:]解释为数组的副本而不是'rows'的副本。基本切片仅类似于连续切片,直到:条目出现。从文档(第1.4节 - 索引):

  

在切片元组中使用多个非:条目的基本切片,就像使用单个非:条目重复应用切片一样,其中连续采用非:条目(替换所有其他非条目:通过:)。因此,x[ind1,...,ind2,:]在基本切片下就像x[ind1][...,ind2,:]一样。

处理:条目时存在隐含的复杂性。