我有一個名為 rap 的大?。?5 x 200 x 3)的 numpy 數組。我想根據 2d 列表對它進行切片,例如:fragment = [0 93 7 102 6 43 11 167]這基本上是我想要返回的原始 3d 數組的前兩個索引的列表。當我嘗試這樣做時會出錯:rap_sliced = rap[fragment, :]或者rap_sliced = rap[list(fragment), :]rap_sliced = rap[fragment]我究竟做錯了什么?
1 回答

蕪湖不蕪
TA貢獻1796條經驗 獲得超7個贊
假設輸入:
>>> fragment
[[0, 93], [7, 102], [6, 43], [11, 167]]
>>> fragment=np.array(fragment)
這將起作用:
rap[fragment[:, 0], fragment[:, 1], :]
所以
numpy_array[X, Y, Z]
其中X, Y, Z可以是單個值、列表(一維)或:
或者,numpy您可以這樣做:
numpy_array[boolean_array]
在哪里numpy_array.shape=boolean_array.shape和boolean_array本質上為您提供True/False,無論是否返回具有給定坐標的值numpy_array
添加回答
舉報
0/150
提交
取消