【发布时间】:2022-01-26 12:31:36
【问题描述】:
我有一个二维数组,其索引指向另一个数组:
indexarray = np.array([[0,0,1,1],
[1,2,3,0]])
这些索引所指的数组是:
valuearray = np.array([8,7,6,5])
我想得到一个数组,其中包含valuearray 中的数字,形状为indexarray,该数组中的每个项目对应于valuearray 中的值,索引位于indexarray 的同一位置,即:
targetarray = np.array([[8,8,7,7],
[7,6,5,8]])
如何在不迭代的情况下做到这一点?
我现在要做的是:
np.apply_along_axis(func1d = lambda row: valuearray[row],axis=0,arr = indexarray)
如果有更简单的方法,我有兴趣。
【问题讨论】:
-
targetarray = valuearray[indexarray.flatten()].reshape(indexarray.shape) -
谢谢,这也可以。
-
如果您愿意,请随时添加它是一个答案。