猿问

如何在 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]

我究竟做错了什么?


烙印99
浏览 84回答 1
1回答

芜湖不芜

假设输入:>>> 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
随时随地看视频慕课网APP

相关分类

Python
我要回答