我有一个名为 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]我究竟做错了什么?
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
提交
取消