可以说我有一个像这样的numpy 2D数组:
a = np.array([[3,6,7],[1,9,4],[ 3,7,8],[2,5,10]])
a
# array([[ 3, 6, 7],
# [ 1, 9, 4],
# [ 3, 7, 8],
# [ 2, 5, 10]])
我需要对基于第一列降序排列并在第二列升序排列的行进行排序,以获得以下结果:
array([[ 3, 6, 7],
[ 3, 7, 8],
[ 2, 5, 10],
[ 1, 9, 4]])
使用sortrows(my_matrix,[-1 2])在Matlab中执行此操作非常简单,其中第一列为-1降序,第二列为2升序。
我想知道numpy中是否有类似的功能。
最佳答案
这是使用numpy_indexed软件包的方法:
import numpy_indexed as npi
print(a[npi.argsort((a[:,1], -a[:,0]))])
关于python - 如何使用特定的列索引对numpy 2D数组行进行降序或升序排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38815776/