Python 对数组中每个元素的元素求和

Python 对数组中每个元素的元素求和,python,arrays,Python,Arrays,我有一个数组 [array([ 2.46000000e-02, 4.28211000e+01, 7.95400000e+00]), array([ 0.0987, 15.1704, 7.5235]), array([ 0.2502, 7.5852, 0.041 ])] 我正在查找数组行中项目的总和 对于acb中包含上述数组的项: for item in acb: print sum(item) 50.7997 22.7926 7.8764 我想生成一

我有一个数组

[array([  2.46000000e-02,   4.28211000e+01,   7.95400000e+00]), array([  0.0987,  15.1704,   7.5235]), array([ 0.2502,  7.5852,  0.041 ])]
我正在查找数组行中项目的总和 对于acb中包含上述数组的项:

for item in acb:
   print    sum(item) 



50.7997
22.7926
7.8764
我想生成一个大于50.799,22.79,7.87的数组


谢谢

如果您没有将数组作为多维numpy数组,您可以使用
np.sum()
来获得第二个轴上的项目总和:

>>> A = [np.array([  2.46000000e-02,   4.28211000e+01,   7.95400000e+00]), np.array([  0.0987,  15.1704,   7.5235]), np.array([ 0.2502,  7.5852,  0.041 ])]
>>> A = np.array(A)
>>> 
>>> np.sum(A, axis=1)
array([ 50.7997,  22.7926,   7.8764])

请注意,如果您处理的是大型数据集,这将更加有效,否则您可以简单地使用
map()
函数获取列表中所有数组的总和(在python3迭代器中)。

您可以将该循环转换为列表:

>>> [sum(item) for item in acb]
[50.799700000000001, 22.7926, 7.8764000000000003]
如果需要
numpy.array
,请相应地转换结果

>>> np.array(_)
array([ 50.7997,  22.7926,   7.8764])
。。。或与轴一起使用参数:

>>> np.sum(acb, axis=1)
array([ 50.7997,  22.7926,   7.8764])

您可以这样做:

np.array([sum(i) for i in acb])
测试:

或者正如刚才提到的:

In [72]: np.sum(acb, axis=1)
Out[72]: array([ 50.7997,  22.7926,   7.8764])

这可能会更快

您知道如何计算单个数组的和吗?只需在循环或数组理解中执行。
sum(itertools.chain(数组列表))
谢谢,我只想把数组拿回来。数组[50.79等]您使用的是numpy数组还是这些实际列表?
In [72]: np.sum(acb, axis=1)
Out[72]: array([ 50.7997,  22.7926,   7.8764])