numpy 配列が与えられたとします
x = np.array([[1,2],[3,4]], dtype=np.int8)
その転置を取りましょう。
y = x.T
numpy ドキュメントからの私の理解では、転置は配列のストライドのみを変更し、その基になるデータ バッファーは変更しないということです。
実行することで確認できます
>> x.data.strides
(2, 1)
>> y.data.strides
(1, 2)
ただし、データも変更されているようです
>> x.data.tobytes()
b'\x01\x02\x03\x04'
>> y.data.tobytes()
b'\x01\x03\x02\x04'
私の理解によると予想される動作は、y
のデータ バッファは のデータ バッファと同じままでx
、ストライドのみが変化するはずです。
のデータ バッファが異なるのはなぜy
ですか? data
基になるメモリ レイアウトが属性に表示されていない可能性がありますか?