求值(“a+b”,out=a)?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (6)

在pythonnumexpr中,为避免创建临时数组而将值赋给您操作的同一个数组是否安全?

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在内部仍然使用临时数组,尽管数据块大小为1024个元素(如果使用VML,则为4096个)。可以将这些输入块视为切片,尽管在评估过程中它们被存储为适当的C数据类型,以提高速度和内存的紧凑性

扫码关注云+社区