Slide 22
Slide 22 text
多次元配列のメモリレイアウト
C連続 (C contiguous)
バッファがメモリの連続領域にまとまっていて、
最後の次元がメモリ内で連続
。
Fortran連続 (Fortran contiguous)
バッファがメモリの連続領域にまとまっていて、
最初の次元がメモリ内で連続
。
>>> x = np.arange(12).reshape((3, 4), order='C')
>>> x
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>> x.flatten()
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
10, 11])
>>> x = np.arange(12).reshape((3, 4), order='F')
>>> x
array([[ 0, 3, 6, 9],
[ 1, 4, 7, 10],
[ 2, 5, 8, 11]])
>>> x.flatten()
array([ 0, 3, 6, 9, 1, 4, 7, 10, 2, 5,
8, 11])
● Numpy配列作成関数(np.ones, np.empty等)のデフォルトレイアウトはすべて C連続。
● Fortran連続なNumPy配列は、np.ones(..., order=’F’) のようにorder引数を指定。