Is there a method in numpy to multiply every element in an array?

bj1123 picture bj1123 · May 27, 2017 · Viewed 7.2k times · Source

I want to multiply all elements in a numpy array. If there's an array like [1,2,3,4,5], I want to get value of 1*2*3*4*5.

I tried this by making my own method, but size of array is very large, it takes very longs time to calculate because I'm using numpy it would be helpful if numpy supports this operation.

I tried to find out through numpy documents, but I failed. Is there a method which does this operation? If there is, is there a way to get values along a rank in an matrix?

Answer

Wasi Ahmad picture Wasi Ahmad · May 27, 2017

I believe what you need is, numpy.prod.

From the documentation:

Examples

By default, calculate the product of all elements:

>>> np.prod([1.,2.])
2.0

Even when the input array is two-dimensional:

>>> np.prod([[1.,2.],[3.,4.]])
24.0

But we can also specify the axis over which to multiply:

>>> np.prod([[1.,2.],[3.,4.]], axis=1)
array([  2.,  12.])

So for your case, you need:

>>> np.prod([1,2,3,4,5])
120