在数组中的每个元素乘法是否有一种方法?

问题描述:

我想乘以一个numpy数组中的所有元素。如果有像[1,2,3,4,5]这样的数组,我想要得到1*2*3*4*5的值。在数组中的每个元素乘法是否有一种方法?

我试过这个通过自己制作的方法,但是数组的大小非常大,需要很长时间来计算,因为我使用的是numpy,如果numpy支持这个操作会有帮助。

我试图找出通过numpy文件,但我失败了。有没有一种方法可以执行此操作?如果存在,是否有办法在矩阵中得到一个等级的值?

我相信你需要的是numpy.prod。

documentation

实例

默认情况下,计算出的所有元素的乘积:

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

即使当输入阵列是二维的:

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

但我们也可以指定轴,在其上繁殖:

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

所以对于你的情况,你需要:

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

您可以使用这样的事情:

import numpy as np 
my_array = np.array([1,2,3,4,5]) 
result = np.prod(my_array) 
#Prints 1*2*3*4*5 
print(result) 

Here is the documentation of numpy.prod
下面是从上面的链接一个摘录:

默认情况下,计算出的所有元素的乘积:

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

即使当输入阵列是二维的:

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

但是我们也可以指定要乘以的轴:

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

虽然此代码可能回答此问题,但提供有关如何解决问题和/或解决问题原因的其他上下文会提高答案的长期价值。 –

+0

@DonaldDuck当然,但上面的答案涵盖了一切。实际上,到numpy.prod文档的链接涵盖了一切。他只是从那里复制粘贴,没有说别的。直到他回来编辑他的答案时,才将我的答案粘贴到他的答案中。 – JeremiahBarrar

+1

我不确定从接受的答案中复制粘贴是否合适。我明白接受的答案是从文档复制粘贴的,但是您也复制粘贴完全相同的东西,因此使您的答案与接受的答案几乎相同似乎不合适。不清楚接受的答案是从文档中复制粘贴的,所以我编辑它来说明问题。但是,如果您的解决方案与其他答案不同,则只应发布自己的答案。 –