私は、コードを持っているとします計算のストア結果
a, b, c = np.empty((3,)), np.array([1, 2, 3]), np.array([4, 5, 6])
a = b + c
私が望むどのような既存のアレイに格納されるB + Cの結果のためです。新しい配列を割り当てる必要はありません。これをnumpyで行うにはどうすればいいですか?
私は、コードを持っているとします計算のストア結果
a, b, c = np.empty((3,)), np.array([1, 2, 3]), np.array([4, 5, 6])
a = b + c
私が望むどのような既存のアレイに格納されるB + Cの結果のためです。新しい配列を割り当てる必要はありません。これをnumpyで行うにはどうすればいいですか?
np.add(b, c, out=a)
numpyののufuncs(およびその他のいくつかのnumpyのルーチン)に出力を配置するout
パラメータを取る。
あなたのメモリは、重要な、あなたは3つのアレイ(と周りにローミングしたくないということであればa、bおよびc)、あなたが行うことができます:
b
は今、あなたは、配列
a
でいた結果を運んでいる
b, c = np.array([1, 2, 3]), np.array([4, 5, 6])
b += c # does in-place operation, similarly to np.add(b, c, out=b)
を。
私は 'ufunc'の' out'パラメータを最適化機能として扱います。優先順位はコードを有効かつ明確にしています。 'numpy'はメモリの割り当てと再利用でかなり良いです。 – hpaulj