gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 23:38:25 27 4
gpt4 key购买 nike

我在一个 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com