在数组中的每个元素乘法是否有一种方法?
问题描述:
我想乘以一个numpy数组中的所有元素。如果有像[1,2,3,4,5]
这样的数组,我想要得到1*2*3*4*5
的值。在数组中的每个元素乘法是否有一种方法?
我试过这个通过自己制作的方法,但是数组的大小非常大,需要很长时间来计算,因为我使用的是numpy,如果numpy支持这个操作会有帮助。
我试图找出通过numpy文件,但我失败了。有没有一种方法可以执行此操作?如果存在,是否有办法在矩阵中得到一个等级的值?
答
我相信你需要的是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.])
所以对于你的情况,你需要:
>>> 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.])
虽然此代码可能回答此问题,但提供有关如何解决问题和/或解决问题原因的其他上下文会提高答案的长期价值。 –
@DonaldDuck当然,但上面的答案涵盖了一切。实际上,到numpy.prod文档的链接涵盖了一切。他只是从那里复制粘贴,没有说别的。直到他回来编辑他的答案时,才将我的答案粘贴到他的答案中。 – JeremiahBarrar
我不确定从接受的答案中复制粘贴是否合适。我明白接受的答案是从文档复制粘贴的,但是您也复制粘贴完全相同的东西,因此使您的答案与接受的答案几乎相同似乎不合适。不清楚接受的答案是从文档中复制粘贴的,所以我编辑它来说明问题。但是,如果您的解决方案与其他答案不同,则只应发布自己的答案。 –