有没有一种方法可以使用键(或比较器)函数对numpy ndarray的行进行排序,而不必转换为Python列表?
特别是,我需要根据以下函数进行排序:
特别是,我需要根据以下函数进行排序:
c1,c2= 4,7
lambda row: c1*(row[1]/c2)+row[0]
我意识到一种可能的解决方案是生成一个包含每行键值的向量,但如何根据此向量进行排序?是否应该尝试将这样的向量转换为索引向量?
order= c1*(matrix[:,1]/c2)+matrix[:,0]
indexes= order_to_index( order )
return matrix[ indexes ]
这个现实吗?
order_to_index
?您是否指的是argsort
? - Ruggero Turranp.argsort([3,6,2,2,8]) #-> array([2, 3, 0, 1, 4])
。它不会对您的原始输入进行排序。通常情况下,numpy函数不会产生副作用。 - Ruggero Turra