【问题标题】:sorting arrays in numpy by row按行对numpy中的数组进行排序
【发布时间】:2016-09-24 08:09:21
【问题描述】:

我想按第一行对 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()”

【问题讨论】:

    标签: python sorting numpy scipy


    【解决方案1】:

    我认为test[:, np.argsort( test[0] ) ] 应该可以解决问题。

    【讨论】:

      最近更新 更多