我想按列对二维数组进行排序,因此如果一列中的值相等,则按下一列执行排序。 例如数组
[[1, 0, 4, 2, 3]
[0, 1, 5, 7, 4]
[0, 0, 6, 1, 0]]
必须排序为
[[0, 0, 6, 1, 0]
[0, 1, 5, 7, 4]
[1, 0, 4, 2, 3]]
所以行不能改变,只能改变它们的顺序。我怎样才能做到这一点?
这应该有效
import numpy as np
a = np.array([[1, 0, 4, 2, 3],[0, 1, 5, 7, 4],[0, 0, 6, 1, 0]])
np.sort(a.view('i8,i8,i8,i8,i8'), order=['f0'], axis=0).view(np.int)
我明白了
array([[0, 0, 6, 1, 0],
[0, 1, 5, 7, 4],
[1, 0, 4, 2, 3]])
f0
是您要排序的列。
python 的正常排序已经做到了这一点......我也浪费了 1 个小时试图弄清楚这一点。
只需执行 result = Sorted(original_2d_array)