在numpy中列出一个列表的元素

时间:2014-08-25 15:45:14

标签: arrays list numpy

我有这个清单:

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

我收到错误:设置一个带序列的数组元素。这是为什么?我想我可以直接遍历列表(不将其转换为数组),我该怎么做?谢谢

1 个答案:

答案 0 :(得分:2)

有几种方法可以做到这一点,例如:

sums = [sum(section) for section in sections]

sums = map( sum, sections)