如何按列对 numpy 数组进行排序?

问题描述 投票:0回答:2

我想按列对二维数组进行排序,因此如果一列中的值相等,则按下一列执行排序。 例如数组

[[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]]

所以行不能改变,只能改变它们的顺序。我怎样才能做到这一点?

python numpy sorting
2个回答
0
投票

这应该有效

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
是您要排序的列。


0
投票

python 的正常排序已经做到了这一点......我也浪费了 1 个小时试图弄清楚这一点。

只需执行 result = Sorted(original_2d_array)

© www.soinside.com 2019 - 2024. All rights reserved.