
492
付録
A
NumPy
:応用編
In [26]: arr.reshape(other_arr.shape)
Out[26]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
これまでは
1
次元から高次元への変換操作を見てきました。その逆の操作は、平坦化(
flattening
)や
レイベリング(
raveling
)
*
1
と呼ばれるものです。
NumPy
にはインスタンスメソッド
flatten
と
ravel
が
用意されています。
In [27]: arr = np.arange(15).reshape((5, 3))
In [28]: arr
Out[28]:
array([[ 0, 1, 2],
[ 3, 4, 5],
[ 6, 7, 8],
[ 9, 10, 11],
[12, 13, 14]])
In [29]: arr.ravel()
Out[29]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
ravel
メソッドは、戻す配列に格納する各値データがもともとの配列において連続している場合は、
内部の値データのコピーを作成しません。一方、
flatten
メソッドの動作は
ravel
と基本的に同じです
が、必ずデータのコピーを戻します。
In [30]: arr.flatten()
Out[30]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, ...