按行整齐排序数组

时间:2016-09-24 08:09:21

标签: python sorting numpy scipy

我想在第一行的numpy中对数组进行排序。

例如:

import numpy as np

test = np.array([[1334.71601720318, 930.9757468052002, 1018.7038817663818],
       [0.0, 1.0, 2.0],
       [ np.array([[ 667, 1393],
       [1961,  474]]),
        np.array([[ 673, 1389],
       [ 847, 1280]]),
        np.array([[ 726, 1077],
       [ 898,  961]])]], dtype=object)

我想对行进行排序:

[1334.71601720318, 930.9757468052002, 1018.7038817663818]

获得:

np.array([[930.9757468052002, 1018.7038817663818, 1334.71601720318],
       [1.0, 2.0 ,0.0],
       [ np.array([[ 673, 1389],
       [ 847, 1280]]),
       np.array([[ 726, 1077],
       [ 898,  961]])],
       np.array([[ 667, 1393],
       [1961,  474]])], dtype=object)

----编辑以后----

我尝试过:sorted(test,key = lambda row:row [1]) 但是我得到了一条错误消息:"具有多个元素的数组的真值是不明确的。使用a.any()或a.all()"

1 个答案:

答案 0 :(得分:4)

我认为test[:, np.argsort( test[0] ) ]可以做到这一点。