如何在numpy中对一维矩阵进行排序?

时间:2019-11-30 09:20:09

标签: python numpy

我有一个形状为(3, 5)的矩阵A [实际上更大]

假设此问题,以下是A(括号是索引)

    (0) (1) (2) (3) (4)
(0) 10, 20, 30, 40, 50
(1) 90, 80, 70, 60, 50
(2) 40, 70, 10, 70, 10

我希望每一行都知道它的排序索引,这意味着,如果我访问了索引中的A,我将得到一个排序行矩阵。因此,对于上面的示例,我想要以下输出(不关心重复项):

    (0) (1) (2) (3) (4)
(0)  0,  1,  2,  3,  4
(1)  4,  3,  2,  1,  0
(2)  2,  4,  0,  1,  3

我尝试过

sorted_inds = np.argsort(A, axis=0)
B = A[sorted_inds]

但这会输出一个3维的矩阵,我不太了解。

我应该怎么做?


奖金:

我不想对每一行进行排序,而是只获取最小的k个索引。 我了解我应该使用np.argpartition(A, k, axis=0)[:, :k] 但是遇到了同样的问题。


谢谢

0 个答案:

没有答案