【问题标题】:Summing each array inside list对列表中的每个数组求和
【发布时间】:2023-03-04 01:44:01
【问题描述】:

我有一个从另一个函数生成的数组列表:

testGroup = [array([18]), array([], dtype=int64), array([56, 75, 55, 55]), array([32])]

我想返回列表中每个单独数组的总和,空的返回为零

根据文档,我尝试过使用 numpy:

np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])np.sum([[0, 1], [0, 5]], axis=1)
array([1, 5])

但是当我尝试np.sum(testGroup, axis=1) 时,我得到一个轴错误,因为我认为空数组的维度小于一?

我也试过直接求和 arraySum = sum(testGroup) 但得到一个 ValueError

关于如何实现数组内的总和的任何想法 testGroup名单?

【问题讨论】:

    标签: python arrays numpy sum


    【解决方案1】:

    testGroup 是一个普通的 python 列表,恰好包含 numpy.array 元素。相反,您可以使用列表推导

    >>> [np.sum(a) for a in testGroup]
    [18, 0, 241, 32]
    

    【讨论】:

    • 谢谢!它奏效了
    【解决方案2】:

    试试 list(map(np.sum, testGroup)) 它给了

    [18, 0, 241, 32]
    

    【讨论】:

    • 谢谢!感谢您花时间帮助我
    【解决方案3】:

    您可以使用所谓的 list-comprehension 将函数应用于列表的每个元素,如下所示

    import numpy as np
    testGroup = [np.array([18]), np.array([], dtype=np.int64), np.array([56, 75, 55, 55]), np.array([32])]
    totals = [np.sum(i) for i in testGroup]
    print(totals)
    

    输出

    [18, 0, 241, 32]
    

    【讨论】:

    • 谢谢!感谢您花时间帮助我
    猜你喜欢
    • 1970-01-01
    • 2020-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    • 1970-01-01
    • 2020-07-16
    相关资源
    最近更新 更多