2011-02-26 104 views
4
import numpy as np 
x = np.array(range(10 * 30)).reshape(100, 3) 
y = np.array(range(1010, 10, -10)) 
res = sorted(x, key = lambda y:y) #ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 
res = sorted(x, key=y) #TypeError: 'tuple' object is not callable 
+0

什麼是你的問題/問題,什麼是你想怎麼辦?如果有更多的描述,而不是發佈代碼,這將是很好的。 – Karmastan 2011-02-26 18:22:56

+0

使用y數組中的值對x數組進行排序 – chimichanga 2011-02-26 18:38:09

回答

2

嘗試argsort:

import numpy as np 
x = np.array(range(10 * 30)).reshape(100, 3) 
y = np.array(range(1010, 10, -10)) 
args = y.argsort(axis = 0) 
print x[args] 
+0

這很酷 - 但也許這應該是'args = y.argsort()'和'print x [args]'?至少,這似乎是OP所要求的...... – senderle 2011-02-26 18:40:38

+0

是的,你必須改變最後兩行,比如senderle說,但這就是我想要的感謝。 – chimichanga 2011-02-26 18:43:25

相關問題