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])