我正在尝试在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以便输入i是i-1以前值的乘积p?
我试过了:
for i in p:
q[i+1] = prod(p[0:i-1])
Run Code Online (Sandbox Code Playgroud)
但是,这会抛出numpy.float64不支持项目分配错误.
我该如何构建这个阵列?对于资金,我能不能代替prod用sum?
你想要NumPy功能cumprod和cumsum
from numpy import cumprod, cumsum
# your code here
q = cumprod(p)
r = cumsum(p)
Run Code Online (Sandbox Code Playgroud)
文档