我有一个3D数组和一个2D数组的索引。如何在最后一个轴上进行选择?
import numpy as np
# example array
shape = (4,3,2)
x = np.random.uniform(0,1, shape)
# indices
idx = np.random.randint(0,shape[-1], shape[:-1])
字符串
这里有一个循环,可以给予所需的结果。但是应该有一种有效的矢量化方法来做到这一点。
result = np.zeros(shape[:-1])
for i in range(shape[0]):
for j in range(shape[1]):
result[i,j] = x[i,j,idx[i,j]]
型
2条答案
按热度按时间slhcrj9b1#
可能的解决方案:
字符串
或者,
型
7cjasjjr2#
对于2D的校正,首先使用meshgrid建立笛卡尔Map。
字符串