簡體   English   中英

如何在 Numpy/Python 中輕松地對多維 arrays 進行切片/索引?

[英]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.shapeboolean_array本質上為您提供True/False ,無論是否返回具有來自numpy_array的給定坐標的值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM