我有一个numpy数组,其中包含许多数组。我如何求和所有的数组,导致一个单一的numpy数组?

时间:2019-01-25 21:26:08

标签: python python-3.x numpy

所以我在这里有点迷路了。我有一个numpy数组,其中包含多个数组。我的目标是将大数组内的所有数组求和,从而得到包含这些求和值的奇异数组。

我已经尝试过使用np.sum()了,但这已经走了一步,将所有返回单个整数值的值相加。

我要完成的示例:     a =(array([1,2,3]),array([3,4,5])) **执行一些步骤,预期结果是:     a =(array([4,6,8]))

3 个答案:

答案 0 :(得分:2)

您可以为此直接使用求和运算。您不需要任何特定的内置函数即可完成此任务。

import numpy as np

a = (np.array([1,2,3]), np.array([3,4,5])))
sum = a[0] + a[1]
print('The summation of two sub-arrays: ',sum)

解释完上面的代码后,您将得到如下结果;

  

两个子数组的总和:[4 6 8]

答案 1 :(得分:1)

更新:具有矢量化加法的更好解决方案

#!/usr/bin/env python3

import numpy as np

a = (np.array([1,2,3]), np.array([3,4,5]))
print(sum(a))
>>> [4 6 8]

原始,笨拙的非numpyic解决方案

#!/usr/bin/env python3
import numpy as np
a = (np.array([1,2,3]), np.array([3,4,5]))  
b = zip(*a) 
c = [sum(arr) for arr in b]
print(c)
>>> [4, 6, 8]
d = np.array(c)
print(d)
>>> [4 6 8]

答案 2 :(得分:0)

您肯定需要遍历np个列表元素,因此请检查此元素以迭代pairwise,然后再检查此sum list's elements