[英]How to slice/index, easily, multi-dimensional arrays in Numpy/Python?
我有一個名為 rap 的大小 (15 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]
我究竟做錯了什么?
假設輸入:
>>> 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
的給定坐標的值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.