【问题标题】:How to create array with initial value and 'decay function'?如何创建具有初始值和“衰减函数”的数组?
【发布时间】:2018-01-06 00:19:53
【问题描述】:

我正在寻找一种更有效的方法来计算它(搜索类似于 numpy 的 arange 的东西):

R = 0
l1 = []
gamma = 0.99
x = 12
for i in range(0, 1000):       
    R = x - (1-gamma) * R
    l1.append(R)

迭代和追加太慢了

【问题讨论】:

  • 看看this answer有没有给你一些想法。
  • 我对你的代码有点困惑。使用代码中的循环创建一个包含 1000 个值的列表会很快完成。除了前几个值之外,所有值都是相同的(我怀疑是因为浮点精度,否则它们会继续收敛于某个实数)。如果您在实际代码中使用不同的计算,请显示它。可能有一种方法可以使用封闭式公式计算相同的结果。

标签: python numpy


【解决方案1】:

如果您使用 Numba 对函数进行 JIT,则可以轻松获得 3 倍:

您还应该探索 Numpy 并在笔记本或 IPython 中玩耍,根据您的典型输入进行一些性能测试,如果您有更具体的问题,请回来。

只是一个小更新: 使用 Julia (https://julialang.org) 我得到了大约 2.5us 的速度,所以还有改进的空间;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    相关资源
    最近更新 更多