在 Python 中是否有一个有效的 np.sum 和指数运算符?

Is there an efficient np.sum with exponent operator possible in Python?

我有一个快速的问题,但(目前)在任何地方都找不到。有没有一种快速有效的方法来执行这样的操作:

其中 gamma 是常数。所以简单地说:将所有伽玛的总和乘以 i 次方。我用 np.sumnp.exp 玩弄了一下,但这似乎是我最好的猜测:

n = 4
gamma = 2
np.sum([gamma**i for i in range(n)])

告诉我你的想法:)

你可以用一个numpy表达式生成所有的幂:

In [131]: n = 4
     ...: gamma = 2
     ...: np.sum([gamma**i for i in range(n)])
Out[131]: 15
In [132]: np.sum(gamma ** np.arange(n))
Out[132]: 15

正如@Mark 所解释的那样,最好的解决方案是将总和重写为简单的公式:

(gamma ** n - 1)/(gamma - 1)

谢谢大家!