2015-08-24 72 views
0

我真的想避免循環這個簡單的問題...numpy的矩陣最小應用於第二陣列

import numpy as np 

x = np.array([[1,2,3,4], [5,6,1,2], [7,4,9,1]]) 
y = np.array([[2,5,6,7], [1,2,3,4], [1,2,3,4]]) 
print(x) 
[[1 2 3 4] 
[5 6 1 2] 
[7 4 9 1]] 

maxidx = np.argmax(x, axis=0) 
print(maxidx) 
[2 1 2 0] 

到目前爲止好。現在我只需要y數組中的這些索引條目。由於我只能得到每列的索引,所以我不確定如何正確應用它,而無需循環或創建列表......謝謝!

+1

什麼是你期望的輸出? – Kasramvd

+0

輸出應該是[1 2 3 7] – HansSnah

回答

2

使用multidimensional-indexing

>>> indices = np.argmax(x, axis=0) 
>>> y[indices, np.arange(x.shape[1])] 
array([1, 2, 3, 7]) 
+0

謝謝!有時候我在這裏感到很蠢。 :d – HansSnah