python - 根据每个子数组的累积和对 NXM Numpy 数组进行排序

标签 python numpy scipy

我在一个 nxm 数组中有 5 个 numpy 数组,每个数组包含一组随机值。我需要的是根据它们的累计金额递减来打印它们。例如,我的 nXm 数组如下所示:

 v = [[1,2,3,4], [2,3,4,5], [11,21,3,4], [4,33,21,1], [2,4,6,5]]

我需要的排序是:累积总和最高的排在第一位。我尝试根据 argmax 打印它们,但它会潜入各个数组的所有元素并按降序对它们进行排序..

有办法吗?

最佳答案

假设累积和指的是总计(有一个累积和函数会返回其他内容),那么您可以使用标准排序来完成此操作:

>>> v = [[1,2,3,4], [2,3,4,5], [11,21,3,4], [4,33,21,1], [2,4,6,5]]
>>> sorted(v, key=sum, reverse=True)
[[4, 33, 21, 1], [11, 21, 3, 4], [2, 4, 6, 5], [2, 3, 4, 5], [1, 2, 3, 4]]

在 numpy 中使用argsort:

>>> a = np.array(v)
>>> a.sum(axis=1)
array([10, 14, 39, 59, 17])
>>> a.sum(axis=1).argsort()
array([0, 1, 4, 2, 3])
>>> a[a.sum(axis=1).argsort()[::-1]]
array([[ 4, 33, 21,  1],
       [11, 21,  3,  4],
       [ 2,  4,  6,  5],
       [ 2,  3,  4,  5],
       [ 1,  2,  3,  4]])

但是我可能误解了你的意思。

关于python - 根据每个子数组的累积和对 NXM Numpy 数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14555771/

相关文章:

python - Pandas str.count()

python - 将 csv 文件读入列表并查找每列的最大值,并从相应列的最大值中减去每个值

python - 在 Python 中遍历多维数组

python - 导入错误 : Could not import the Python Imaging Library (PIL) required to load image files

python - 绘制从一组到另一组的复杂函数

python - 在 flask 中渲染模板后更新Jinja元素

python - 当测试目录包含 __init__.py 时,为什么导入与 Python nose 一起工作?

python - NumPy 数组不是 JSON 可序列化的

python - 识别具有最小欧氏距离的点

python - 为什么我的 Sympy 中的 Rician 与 Scipy 中的 Rician 不匹配?