如何标准化 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
  • 第二行总和:0.25 + 0.33 + 0.417 = 1
  • 第三行总和: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
  • 第二列之和:0.083 + 0.333 + 0.583 = 1
  • 第三列之和:0.133 + 0.333 + 0.5333 = 1

其他资源

以下教程解释了如何在 Python 中执行其他常见操作:

如何在 Python 中规范化数组
如何标准化 Pandas DataFrame 中的列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注