对列表中的每个数组求和
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]
我有一个从另一个函数生成的数组列表:
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]