LoginSignup
0
0

More than 3 years have passed since last update.

【NumPy】 ravel は ほどく という意味。flatten との違いも紹介

Last updated at Posted at 2020-07-25

numpy の ravel 、日本語だと "ラベル" って発音になっちゃって
"label" と混同しちゃいがちですが、正しくは "ravel" です。

で、 ravel の意味は "ほどく" とか "ほぐす" といった意味があります。

行列をほぐして一列にするみたいなイメージでしょうか。おもしろいですね。

せっかくなので ravel の使用例を見てみましょう。
ついでに ravel と動作が似ている flatten も見てみましょう。

ravel の使用例

a = np.array(([1, 2], [3, 4]))
  # array([[1, 2],
  #        [3, 4]])

a.ravel()
  # array([1, 2, 3, 4])

a.flatten()
  # array([1, 2, 3, 4])

ravel と flatten の違い

簡単に言うと、 ravel は参照渡しで flatten は値渡しです。
使う際は基本的に ravel でいいと思います。

詳しくは以下のサイトがよくまとまっていました。

Differences between Flatten() and Ravel() | Numpy

a.ravel():
(i)元の配列の参照/ビューのみを返す
(ii)配列を変更すると、元の配列の値も変化することがわかります。
(iii)Ravelはメモリを占有しないため、flatten()より高速です。
(iv)Ravelはライブラリレベルの関数です。

a.flatten():
(i)元の配列のコピーを返す
(ii)この配列の値を変更した場合、元の配列の値は影響を受けません。
(iii)Flatten()は、メモリを占有するため、ravel()よりも比較的低速です。
(iv)Flattenはndarrayオブジェクトのメソッドです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0