NumPy で行列を配列に変換する

Manav Narula 2023年1月30日
  1. numpy.flatten() 関数を使用して、行列を NumPy の配列に変換する
  2. NumPy で numpy.ravel() 関数を使用して行列を配列に変換する
  3. NumPy で numpy.reshape() 関数を使用して行列を配列に変換する
NumPy で行列を配列に変換する

NumPy には、行列に対してさまざまな操作を実行するために使用できる多くの関数とクラスがあります。

このチュートリアルでは、NumPy で行列を配列に変換する方法を学習します。

numpy.flatten() 関数を使用して、行列を NumPy の配列に変換する

flatten() は N 次元配列を受け取り、それを 1 次元配列に変換します。

ndarray オブジェクトでのみ機能します。

以下に示すように、行列を配列に変換できます。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr.flatten())

出力:

[1 2 3 4 5 6 7 8 9]

行列型オブジェクトを操作する場合は、asarray() 関数を使用して配列に変換してから、flatten() 関数を使用する必要があることに注意してください。それはすべての方法で行うことができます。

例えば、

import numpy as np

arr = np.matrix([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
arr_d = (np.asarray(arr)).flatten()
print(arr_d)

出力:

[1 2 3 4 5 6 7 8 9]

NumPy で numpy.ravel() 関数を使用して行列を配列に変換する

ravel() 関数は flatten() 関数とまったく同じように機能しますが、いくつかの顕著な違いがあります。どちらも、N 次元配列を 1 次元配列に変換するために使用されます。

ただし、ravel() 関数はライブラリ関数であり、配列のリストなどのオブジェクトでも機能します。flatten() はオリジナルのコピーを返しますが、ravel() は可能な限り常にオリジナルのビューを返します。

次のコードでは、この関数を使用して行列を変換します。

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr.ravel())

出力:

[1 2 3 4 5 6 7 8 9]

NumPy で numpy.reshape() 関数を使用して行列を配列に変換する

reshape() は、内容を変更せずに配列の全体的な形状を変更しました。行列の新しい形状を -1 として割り当てると、1 次元配列が得られます。

例えば、

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr.reshape(-1))

出力:

[1 2 3 4 5 6 7 8 9]
著者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn