我四处寻找,试图找到一个似乎很简单的问题的解决办法,但却一无所获。问题是根据矩阵的列,逐步地对矩阵进行排序。所以,如果我有一个纽比矩阵:
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]]
我想根据第一列进行排序,然后是第二列、第三列,依此类推,得到如下结果:
^{pr2}$虽然我认为可以通过命名列来对矩阵进行排序,但我更希望有一种排序方法,它不太依赖于矩阵的大小。如果重要的话,我使用的是python3.4。
任何帮助将不胜感激!
它不会特别快,但您可以始终将行转换为元组,然后使用Python的sort:
您也可以使用
^{pr2}$np.lexsort
,如this answer到somewhat related question中所建议的那样:lexsort方法似乎更快,但您应该使用实际数据进行测试,以确保:
这里:
^{pr2}$output
:相关问题 更多 >
编程相关推荐