Addition of multiple arrays in python

There is no need to create a 2D array from your pre-existing 1D arrays. It will certainly not be faster than adding them together, e.g. using reduce with np.add:

In [14]: a = [np.random.rand(10) for _ in range(10)]

In [15]: %timeit np.array(a).sum(axis=0)
100000 loops, best of 3: 10.7 us per loop

In [16]: %timeit reduce(np.add, a)
100000 loops, best of 3: 5.24 us per loop

For larger arrays, it is even less advantageous:

In [17]: a = [np.random.rand(1000) for _ in range(1000)]

In [18]: %timeit np.array(a).sum(axis=0)
100 loops, best of 3: 6.26 ms per loop

In [19]: %timeit reduce(np.add, a)
100 loops, best of 3: 2.43 ms per loop

And of course:

In [20]: np.allclose(np.array(a).sum(axis=0), reduce(np.add, a))
Out[20]: True

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

>>> arr = np.array([[1,2,3,5,4,3], 
          [5,7,2,4,6,7],
          [3,6,2,4,5,9]])
>>> 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], 
          [5,7,2,4,6,7],
          [3,6,2,4,5,9]]
>>> map(sum, zip(*lst))
[9, 15, 7, 13, 15, 19]