我有一个由另一个函数生成的数组列表。
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)
时我得到一个轴错误,因为我认为空数组的尺寸小于1?
我也试过直接求和arraySum = sum(testGroup)
,但得到一个ValueError。
有什么办法可以实现数组内部的和?
testGroup
列表的总和?
gsx
发布于 2021-09-20
3 个回答
0 人赞同
testGroup
是一个普通的Python列表,刚好包含numpy.array
元素。相反,你可以使用一个列表理解器
>>> [np.sum(a) for a in testGroup]
[18, 0, 241, 32]
0 人赞同
list(map(np.sum, testGroup))
it gives
[18, 0, 241, 32]
0 人赞同
你可以使用所谓的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]