我四处寻找并试图找到解决这个看似简单问题的方法,但一无所获。问题是根据矩阵的列逐步对矩阵进行排序。所以,如果我有一个像这样的 numpy 矩阵:
import numpy as np
X=np.matrix([[0,0,1,2],[0,0,1,1],[0,0,0,4],[0,0,0,3],[0,1,2,5]])
print(X)
[[0 0 1 2]
[0 0 1 1]
[0 0 0 4]
[0 0 0 3]
[0 1 2 5]]
我想根据第一列对其进行排序,然后是第二列、第三列等等,以获得如下结果:
Xsorted=np.matrix([[0,0,0,3],[0,0,0,4],[0,0,1,1],[0,0,1,2],[0,1,2,5]])
print(Xsorted)
[[0,0,0,3]
[0,0,0,4]
[0,0,1,1]
[0,0,1,2]
[0,1,2,5]]
虽然我认为可以通过命名列等对这样的矩阵进行排序,但我更希望有一种不太依赖于矩阵有多大的排序方法。我正在使用 Python 3.4,如果这很重要的话。
任何帮助将不胜感激!