Addition of multiple arrays in python

I have a number of arrays that I wish to broadcast into a single array using addition, which I know can be simply done such that:

a = numpy.array([1,2,3])
b = numpy.array9[4,5,6])
sum = a + b


However, I can't hardcode it like in this simple example as I will run my script numerous times with a different number of inputs and so will have a different number of arrays each time. Sometimes, I may have a and b, but other times I may have a, c and d but not b etc.

Using a loop I therefore append the arrays I do have into a list, so that I end up with something like:

newlist = [array([1,2,3,...5,4,3]), 

What would be the most pythonic way of getting a single array from the arrays in 'newlist' which is the addition of the arrays within it, such that (from newlist):

sum = [8,15,7,...14,15,19]

The arrays are all the same shape.


  • Stick with Numpy array and use its sum() method:

    >>> arr = np.array([[1,2,3,5,4,3], 
    >>> arr.sum(axis=0)
    array([ 9, 15,  7, 13, 15, 19])

    Of course you can do it with Python lists as well but it is going to be slow:

    >>> lst = [[1,2,3,5,4,3], 
    >>> map(sum, zip(*lst))
    [9, 15, 7, 13, 15, 19]