Безопасно ли в python numexpr назначать значения одному и тому же массиву, на котором вы работаете, чтобы избежать создания временного массива?numexpr.evaluate ("a + b", out = a)
Из описания использования памяти на 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 для начала). На стороне примечания, для простых случаев, подобных вашему примеру, также полезно знать: 'np.add (a, b, out = a)'. 'numexpr' чрезвычайно приятен, но можно избежать временных массивов без него, если вам не нужна другая зависимость. –