对np.ndarray中的向量进行排序

时间:2019-05-23 17:32:14

标签: python numpy-ndarray

我是python的新手。这似乎是一个非常简单的问题,但我发现的所有类似答案均与我的情况无关。

我有一个np.ndarray对象,其中每一行代表一个向量,就像这样:

vectors = [[2, 0, 1]
           [1, 1, 2]
           [3, 2, 0]]

我想根据第一部分对这些向量进行排序,而不改变向量本身。即我只想交换整个行,例如:

 sorted_vectors = [[1, 1, 2]
                   [2, 0, 1]
                   [3, 2, 0]]

我尝试使用np.ndarray.sort,但是此方法将对每个列进行独立排序,从而有效地破坏了向量。

 vectors.sort(axis=0) = [[1, 0, 0]
                         [2, 1, 1]
                         [3, 2, 2]]

是否存在一种将行或列视为整个对象并根据第n个元素对其进行排序的排序方法?

1 个答案:

答案 0 :(得分:0)

您可以尝试

import numpy

vectors = [[2, 0, 1],
           [1, 1, 2],
           [3, 2, 0]]

vectors = sorted(vectors)
print (vectors)