2014-06-21 15 views
0

我有一個數組b包含一個數組a的索引。我想插入數組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] 

##,這將產生具有a1的2倍最小的值的索引

a 
[[0 3] 
[3 4] 
[1 0]] 
b=np.array([[1],[2],[3],[4],[5],[6]]) 
現在

我想在一個用1 b中替換值0的陣列; 3,4等

我試着使用:

[a[index]]=b[index] 

但它顯然不是作爲數組以正確的方式處理這些指標作爲值

請幫助

+0

你能澄清多一點?你提到一個數組'c',但不要在你的例子中顯示它。你能在你的例子中顯示你想要的操作輸出嗎? – daveydave400

回答

1

如果我理解你正確地,您可以使用扁平化版本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]] 
+0

真棒...非常感謝 – Learner27

相關問題