18
一時的な配列の作成を避けるために、操作している同じ配列に値を代入するのは安全ですか?numexpr.evaluate( "a + b"、out = a)
project homepageでのメモリ使用の説明からは、大丈夫ですが、ソースコードに乗ることなく、それは確かに固い答えです。 numexprはまだ1024年のチャンクサイズにもかかわらず、内部的に一時的な配列を使用しているため、
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'は非常にいいですが、別の依存関係が必要ない場合は、それを使わないで一時配列を避けることができます。 –