我有这个清单:
sections = [array([ 22.]),
array([ 26., 16., 23., 0., 20., 23., 0., 19.]),
array([ 0., 0., 0., 0., 20., 0., 0., 18., 18., 0., 0.,
0., 23., 20., 20., 15.]),
array([ 20., 0., 0., 18., 0., 13., 0., 0., 0., 0., 0.,
0., 25., 18., 0., 0., 0., 0., 0., 0.]),
array([ 0., 0., 3., 3., 3., 0., 0., 2., 0., 0., 0., 0., 0.,
0., 0., 0., 0., 4., 0.]),
array([ 0., 0., 3., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.,
0., 0.]),
array([ 0., 0., 0., 0., 0., 0., 0., 0., 0.]),
array([ 0., 0.])]
我想对每个数组的元素求和,并有一个如下所示的输出数组:
[22,127,134,94,15,3,0,0]
如果我尝试将列表转换为数组,然后像这样迭代它:
sec = np.asarray(sections) # covert list into array
photoel_sp = [] # This will contain the data at different radius
start = 0
for end in np.arange(sec.size):
photoel_sp.append(sum(sec[start:end]))
start = end
我收到错误:设置一个带序列的数组元素。这是为什么?我想我可以直接遍历列表(不将其转换为数组),我该怎么做?谢谢
答案 0 :(得分:2)
有几种方法可以做到这一点,例如:
sums = [sum(section) for section in sections]
sums = map( sum, sections)