Python Numpy数组降序排序表(移动整列)

Python Numpy数组降序排序表(移动整列),python,arrays,sorting,numpy,Python,Arrays,Sorting,Numpy,如何制作此numpy阵列: [[ 0. 1. 2.] [ 192. 312. 98.]] 按以下分类: [[ 1. 0. 2.] # Moves entire column instead of just the value in the second row [ 312. 192. 98.]] # Highest to lowest 谢谢。在第二行使用argsort,然后使用输出索引对列重新排序: a[:, a[1].argsort()[::

如何制作此numpy阵列:

[[   0.    1.    2.]
 [ 192.  312.  98.]]
按以下分类:

[[   1.    0.    2.]  # Moves entire column instead of just the value in the second row
 [ 312.  192.  98.]]  # Highest to lowest

谢谢。

在第二行使用
argsort
,然后使用输出索引对列重新排序:

a[:, a[1].argsort()[::-1]]
#array([[   1.,    0.,    2.],
#       [ 312.,  192.,   98.]])

在第二行上使用
argsort
,然后使用输出索引对列重新排序:

a[:, a[1].argsort()[::-1]]
#array([[   1.,    0.,    2.],
#       [ 312.,  192.,   98.]])

我有个问题。当您使用[:,[1,0,2]]时,[1,0,2]会帮助您订购第二行。但是我不明白为什么第一行会根据第二行的顺序而改变…@Mr_U4913,因为您正在使用
对第一个维度进行切片,所以顺序适用于所有行。不管是第一排还是第二排。哇,谢谢。没有比这更好的答案了!为我运行Python 3.5.3和numpy 1.13.0工作。我有个问题。当您使用[:,[1,0,2]]时,[1,0,2]会帮助您订购第二行。但是我不明白为什么第一行会根据第二行的顺序而改变…@Mr_U4913,因为您正在使用
对第一个维度进行切片,所以顺序适用于所有行。不管是第一排还是第二排。哇,谢谢。没有比这更好的答案了!为我运行Python 3.5.3和numpy 1.13.0工作。