【发布时间】:2018-11-13 16:15:41
【问题描述】:
我需要根据旧的数字序列z_t和a_0创建一个数字序列a_t。 a_t 定义为等于27 if t=0 或a(t-1)exp(z(t-1)) for t>=1。
在使用生成器时,该代码很简单
import math
def a_t(zs, a=27):
z = next(zs)
yield a
for z in zs:
a *= math.exp(z)
yield a
似乎可以只使用a_0 和z_t-1, z_t-2, ..., z0 的总和,而不是等待a_t-1 计算a_t。因此可以向量化计算,而不是一个接一个地计算a_i。是否可以使用numpy 编码以下序列以进行矢量化,即a_t = a_0 exp(sum(z_i)) 用于i=0 to t-1?由于我们已经知道序列z_t,因此计算速度可能更快。
【问题讨论】:
-
这个
a_t怎么用?
标签: python numpy generator sequence logarithm