【发布时间】:2023-03-17 23:39:01
【问题描述】:
我有一个 3d 值数组,
vals = np.array([
[
[10, 20, 30],
[40, 50, 60],
],
[
[15, 25, 35],
[45, 55, 65],
],
])
以及相应的 3d 坐标数组
coords = np.array([
[
[0,1],
[0,2],
[1,1]
],
[
[0,0],
[1,1],
[1,2]
]
])
coords 的每个最内层数组表示对应于 vals 中的二维数组之一的 (x,y) 坐标。例如coords中的坐标[0,1]对应的值为20,coords中的坐标[1,2]对应的值为65。
如何以这种方式使用coords 对vals 进行子集化?
我可以像这样解决这个具体的例子
np.array([
vals[0][coords[0][:, 0], coords[0][:, 1]],
vals[1][coords[1][:, 0], coords[1][:, 1]]
])
array([[20, 30, 50],
[15, 55, 65]])
但显然我想要一个更动态的解决方案。
【问题讨论】: