【发布时间】:2011-07-07 20:57:34
【问题描述】:
根据docs numpy 的默认行为是先按行然后按列对数组进行索引:
a = numpy.arange(6).reshape(3,2)
[[0 1]
[2 3]
[4 5]]
print a[0][1] # is 1
我想使用几何定向约定a[x][y] 对数组进行索引,就像在 x 轴和 y 轴中一样。如何在不修改数组形状的情况下更改索引顺序,以便 a[0][1] 返回 2?
【问题讨论】:
-
我从文档中借用了术语(请参阅链接):“矩阵表示法使用第一个索引来指示正在选择哪一行,第二个索引来指示选择了哪一列。这与图像的几何方向约定,人们通常认为第一个索引代表 x 位置(即列),第二个代表 y 位置(即行)"
-
没关系,在想别的事。
-
请注意,在索引多维数组时,您应该使用符号 a[i,j] 而不是 a[i][j]。我在我的机器上发现后者慢了 2 倍。
-
@Josh 感谢您的提示。它看起来也更具可读性。
标签: python indexing numpy multidimensional-array