ついて使い方flattenとの違い本記事では、np.ravel関数を紹介します。np.ravel関数は、一見マイナーであまり使用されない関数のように見えますが、知っていると便利で強力な関数です。np.flatten関数と同様に、配列を一次元化することができる関数ですが、np.ravel関数の方が高速に処理することができる場合があります。np.flatten関数については、以下の記事で解説しているので参考にしてください。/features/numpy-flatten.htmlnp.ravelまずは、ravel関数のAPIドキュメントについてみていきましょう。1次元配列に変換したい配列を指定します。(省略可能)初期値’C’データの読み取り方を指定します。returns:指定されたorderで読み取られた、1次元配列が返されます。(省略可能)初期値’C’データの読み取り方を指定します。returns:指定されたorderで読み取られた、1次元配列が返されます。引数である、orderの扱いには注意が必要です。ついてravel関数では引数orderを指定することで、データの読み取る順番を指定することができます。ここではメモリ上でのデータの並び方は関係ないので、他の配列生成系の関数で使われるorderとは少し意味合いが異なることに注意してください。どちらかというとaxisに近い役割となっています。orderに’C’を指定すると、列方向(より厳密には最低次元の軸方向)から要素を読み取っていきます。一方で、orderに’F’を指定すると、これが逆になり行方向(最高次元の軸方向)から要素を読み取っていきます。order='A'にすると、元の配列がorder='F'、つまりFortranのスタイルでデータが格納されている場合、それと同様のスタイルでデータを読み取っていきます。最後に、order='K'にすると、メモリの中で出て来る値を順番に読み取っていきます。上記をふまえて、実際のコードで使い方をみていきます。2×5の2次元配列を生成。9])次に、orderを変更していきます。orderを'F'にすると、行方向から値が読み取られる。Fortranスタイルで要素を格納していないのでorder='C'と同じ結果になる。こちらも特に配列の`shape`変更などをしていないので、変化なし。order='C'だと、列方向に読み込む。9])flattenとの違いravel関数はflatten関数とは異なり基本的にはデータのコピーを返さず、破壊的な変更になります。そのため、処理が早く終わる傾向がありますが、元の値も変更になるため、バグを生みやすくなります。小さなスコープでしか使用しない場合など、破壊的な変更を気にしない場合はnp.ravel関数を使う方が高速に処理することができるので、こちらを使用しましょう。ravelの方が速い。aの要素の1つの値を変更してみる。flattenの方は変化なし。ravelの方では変化が反映される。配列をタイル上に並べるnumpy.tile関数の使い方DeepAgeではAIに関する厳選した内容を記事にしてお届けします。