对列表中的每个数组求和

Summing each array inside list

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

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

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

我已经根据文档尝试使用 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 列表?

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

[18, 0, 241, 32]

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

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

您可以使用所谓的 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]