在問題的例子並不完全清楚 - 無論是額外的逗號丟失或額外brakets。
這一個 - 例如範圍3,4爲清楚起見 - 提供第一變體的溶液,併產生有效的2D陣列(作爲問題標題表明) - 「目錄」的所有座標:
>>> np.indices((3,4)).reshape(2,-1).T
array([[0, 0],
[0, 1],
[0, 2],
[0, 3],
[1, 0],
[1, 1],
[1, 2],
[1, 3],
[2, 0],
[2, 1],
[2, 2],
[2, 3]])
其他變種已經在另一個答案用2X .swapaxes()
顯示 - 但它也可以用一個np.rollaxis()
(或新np.moveaxis()
)來完成:
>>> np.rollaxis(np.indices((3,4)), 0, 2+1)
array([[[0, 0],
[0, 1],
[0, 2],
[0, 3]],
[[1, 0],
[1, 1],
[1, 2],
[1, 3]],
[[2, 0],
[2, 1],
[2, 2],
[2, 3]]])
>>> _[0,1]
array([0, 1])
這種方法也適用於N維指數相同,例如:
>>> np.rollaxis(np.indices((5,6,7)), 0, 3+1)
注:np.indices
快速的作品的確(C-速度)爲大範圍的功能。
你的格式化的方式,它看起來像你想要一個3D數組形狀(512,512,2)...但你給出的語法標記是一個二維數組形狀(512 * 512, 2)。你能澄清嗎? – lmjohns3