gpt4 book ai didi

python - 如何使用 numpy 有效地计算一个系列?

转载 作者:太空狗 更新时间:2023-10-30 02:34:13 25 4
gpt4 key购买 nike

我想在 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 循环时,还有哪些其他方法可以有效地计算序列的值?

最佳答案

在 NumPy 中没有向量化递归序列定义的通用方法。不过,这种特殊情况在没有 for 循环的情况下很容易编写:

>>> 2 ** 2 ** numpy.arange(5)
array([ 2, 4, 16, 256, 65536])

关于python - 如何使用 numpy 有效地计算一个系列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9378707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com