【发布时间】:2016-04-18 15:29:52
【问题描述】:
我四处寻找并试图找到一个看似简单问题的解决方案,但一无所获。问题是逐步根据其列对矩阵进行排序。所以,如果我有一个像这样的 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,如果这很重要的话。
任何帮助将不胜感激!
【问题讨论】:
-
你有使用numpy吗?
-
我不关心使用 numpy,但我希望尽可能将结果保留为矩阵形式,或者至少能够轻松地将结果转换为矩阵形式。
标签: python sorting numpy matrix