gpt4 book ai didi

python - numexpr.evaluate ("a+b",out=a)

转载 作者:IT老高 更新时间:2023-10-28 21:04:48 25 4
gpt4 key购买 nike

在 python numexpr 中将值分配给您正在操作的同一数组以避免创建临时数组是否安全?

来自 project homepage 上的内存使用说明看起来不错,但如果不深入研究源代码,这几乎不是一个可靠的答案。

我尝试了以下工作正常,但我希望得到更熟悉这个包的人的确认:

import numpy as np
import numexpr as ne
a = np.ones(5)
b = a.copy()
ne.evaluate("a+b",out=a)
array([ 2., 2., 2., 2., 2.])

最佳答案

它可以工作,因为 numexpr 仍然在内部使用临时数组,尽管 block 大小为 1024 个元素(如果使用 VML,则为 4096 个)。您可以将这些输入 block 视为切片,尽管它们在评估期间存储为适当的 C 数据类型以提高速度和内存紧凑性。每一个chunk计算完成后,结果会存入out参数,否则必须分配一个与输入大小相同的数组。

查看 Why It Works 部分用于 numexpr 如何评估矢量化算术的伪代码。

关于python - numexpr.evaluate ("a+b",out=a),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15420213/

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