我有一个包含数组a的索引的数组b。我想在数组b中插入具有相同索引的另一个数组c的值。
import numpy as np
a1=np.array([[1, 3, 5, 2, 3],[7, 6, 5, 2, 4],[2, 0, 5, 6, 4]])
a=a1.argsort()[:,:2]
##这将创建一个索引为2个最小值a1
的数组 a
[[0 3]
[3 4]
[1 0]]
b=np.array([[1],[2],[3],[4],[5],[6]])
现在我想将a中的值0替换为b中的1; 3与4等等
我尝试使用:
[a[index]]=b[index]
但它显然不是正确的方法,因为数组a将这些索引作为值处理
请帮助
答案 0 :(得分:2)
如果我理解正确,您可以使用展平版a
来索引b
:
result = b.ravel()[a.ravel()]
[1, 4, 4, 5, 2, 1]
如果您需要与a
相同的尺寸,则可以重塑它:
result = result.reshape(a.shape)
[[1, 4]
[4, 5]
[2, 1]]