私の印象では、NumPy では 2 つの配列が同じメモリを共有できます。次の例を見てください。
import numpy as np
a=np.arange(27)
b=a.reshape((3,3,3))
a[0]=5000
print (b[0,0,0]) #5000
#Some tests:
a.data is b.data #False
a.data == b.data #True
c=np.arange(27)
c[0]=5000
a.data == c.data #True ( Same data, not same memory storage ), False positive
したがって、明らかに;b
のコピーを作成しませんでした。a
いくつかの新しいメタデータを作成し、使用している同じメモリ バッファーにアタッチしましたa
。2 つの配列が同じメモリ バッファを参照しているかどうかを確認する方法はありますか?
私の第一印象は を使用することでしたa.data is b.data
が、それは false を返します。Trueを返すことはできますが、同じメモリバッファを確認して共有a.data == b.data
するためのチェックは行わないと思います。参照されるメモリブロックと参照されるブロックが同じバイトを持っていることだけです。a
b
a
b