numpy中的部分金额和产品

Tom*_*aly 2 python numpy

我正在尝试在numpy中构建另一个数组条目的部分产品数组.到目前为止,我有:

from numpy.random import dirichlet
from numpy import ones, prod

alpha = ones(100)
p = dirichlet(alpha)
Run Code Online (Sandbox Code Playgroud)

我知道通过切割我的数组,我可以做任何部分产品.例如:

q = prod(p[0:10])
Run Code Online (Sandbox Code Playgroud)

返回前10个条目的乘积p.

我怎样才能构建数组,q以便输入ii-1以前值的乘积p

我试过了:

for i in p:
    q[i+1] = prod(p[0:i-1])
Run Code Online (Sandbox Code Playgroud)

但是,这会抛出numpy.float64不支持项目分配错误.

我该如何构建这个阵列?对于资金,我能不能代替prodsum

YXD*_*YXD 6

你想要NumPy功能cumprodcumsum

from numpy import cumprod, cumsum
# your code here
q = cumprod(p)
r = cumsum(p)
Run Code Online (Sandbox Code Playgroud)

文档