Numpy 行列を正規化する方法: 例付き


行列の正規化とは、行または列の値の範囲が 0 から 1 の間になるように値をスケーリングすることを意味します。

NumPy 行列の値を正規化する最も簡単な方法は、sklearn パッケージのnormalize()関数を使用することです。この関数は、次の基本構文を使用します。

 from sklearn. preprocessing import normalize

#normalize rows of matrix
normalize(x, axis= 1 , norm=' l1 ')

#normalize columns of matrix
normalize(x, axis= 0 , norm=' l1 ')

次の例は、この構文を実際に使用する方法を示しています。

例 1: NumPy 行列の行を正規化する

次の NumPy 行列があるとします。

 import numpy as np

#create matrix
x = np. arange (0, 36, 4). reshape (3,3)

#view matrix
print (x)

[[ 0 4 8]
 [12 16 20]
 [24 28 32]]

次のコードは、NumPy 行列の行を正規化する方法を示しています。

 from sklearn. preprocessing import normalize

#normalize matrix by rows
x_normed = normalize(x, axis= 1 , norm=' l1 ')

#view normalized matrix
print (x_normed)

[[0. 0.33333333 0.66666667]
 [0.25 0.33333333 0.41666667]
 [0.28571429 0.33333333 0.38095238]]

各行の値の合計が 1 になることに注意してください。

  • 最初の行の合計: 0 + 0.33 + 0.67 = 1
  • 2 行目の合計: 0.25 + 0.33 + 0.417 = 1
  • 3 行目の合計: 0.2857 + 0.3333 + 0.3809 = 1

例 2: NumPy 行列の列を正規化する

次の NumPy 行列があるとします。

 import numpy as np

#create matrix
x = np. arange (0, 36, 4). reshape (3,3)

#view matrix
print (x)

[[ 0 4 8]
 [12 16 20]
 [24 28 32]]

次のコードは、NumPy 行列の行を正規化する方法を示しています。

 from sklearn. preprocessing import normalize

#normalize matrix by columns
x_normed = normalize(x, axis= 0 , norm=' l1 ')

#view normalized matrix
print (x_normed)

[[0. 0.08333333 0.13333333]
 [0.33333333 0.33333333 0.33333333]
 [0.66666667 0.58333333 0.53333333]]

各列の値が合計 1 になることに注意してください。

  • 最初の列の合計: 0 + 0.33 + 0.67 = 1
  • 2 番目の列の合計: 0.083 + 0.333 + 0.583 = 1
  • 3 列目の合計: 0.133 + 0.333 + 0.5333 = 1

追加リソース

次のチュートリアルでは、Python で他の一般的な操作を実行する方法について説明します。

Python で配列を正規化する方法
Pandas DataFrame の列を正規化する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です