【发布时间】:2012-03-11 19:56:54
【问题描述】:
我想在 numpy 中创建一个数组,其中包含一个数学系列的值,在这个例子中是前一个值的平方,给出一个起始值,即 a_0 = 2, a_1 = 4, a_3 = 16, 。 ..
尝试在 numpy 中使用矢量化,我认为这可能有效:
import numpy as np
a = np.array([2,0,0,0,0])
a[1:] = a[0:-1]**2
但结果是
array([2, 4, 0, 0, 0])
我现在了解到 numpy 确实在内部为输出创建了一个临时数组,并最终复制了这个数组,这就是为什么原始数组中的值为零时它会失败的原因。 有没有办法使用 numpy、numexpr 或其他工具对这个函数进行矢量化?当可以使用快速 numpy 函数而不使用 for 循环时,还有哪些其他方法可以有效地计算序列的值?
【问题讨论】:
标签: python optimization numpy