在 Python 中对数字列表进行归一化
归一化意味着将给定的数据转换为另一个尺度。我们重新调整数据,使其介于两个值之间。大多数情况下,数据会在 0 和 1 之间重新缩放。我们出于不同的目的重新缩放数据。例如,当数据集值较小时,机器学习算法的性能会更好。
假设我们有一个列表 {1,2,3},在标准化 0 和 1 的比例后,列表将是 {0, 0.5, 1}
。我们也可以将我们的数据标准化为其他规模。假设在 2 和 6 之间。所以,如果我们在归一化后有列表 {1,2,3},它将是 {2,4,6}。
归一化公式
了解标准化的工作原理。我们将看看它的公式。我们从每个数字中减去最小值,然后除以范围 i-e: max-min。因此,在输出中,我们得到了该特定数字的归一化值。
我们可以使用两种方法来归一化列表。我们可以使用内置函数,该函数在 sklearn
包的预处理模块中可用。或者我们可以为它制定与上面讨论的相同公式的逻辑。
使用 Python sklearn
中的 MinMaxScaler
函数归一化数字列表
sklearn
包的 preprocessing
模块中提供了一个名为 MinMaxScaler()
的内置方法。我们将创建一个一维 NumPy
数组并将其传递给函数。我们必须安装 NumPy
和 sklearn
软件包才能使用此功能。
示例代码:
# python 3.x
import numpy as np
from sklearn import preprocessing
list = np.array([6, 1, 0, 2, 7, 3, 8, 1, 5]).reshape(-1, 1)
print("Original List:", list)
scaler = preprocessing.MinMaxScaler()
normalizedlist = scaler.fit_transform(list)
print("Normalized List:", normalizedlist)
输出:
Original List: [[6]
[1]
[0]
[2]
[7]
[3]
[8]
[1]
[5]]
Normalized List: [[0.75 ]
[0.125]
[0. ]
[0.25 ]
[0.875]
[0.375]
[1. ]
[0.125]
[0.625]]
现在假设我们要指定归一化的范围。为此,我们将在 MinMaxScaler()
中指定我们的 range
。默认情况下,如果我们不指定范围,它将是 0 和 1。但是我们可以定义我们的缩放范围。在此示例中,我们指定范围 0 和 3。
示例代码:
# python 3.x
import numpy as np
from sklearn import preprocessing
list = np.array([6, 1, 0, 2, 7, 3, 8, 1, 5]).reshape(-1, 1)
print("Original List:", list)
scaler = preprocessing.MinMaxScaler(feature_range=(0, 3))
normalizedlist = scaler.fit_transform(list)
print("Normalized List:", normalizedlist)
输出:
Original List: [[6]
[1]
[0]
[2]
[7]
[3]
[8]
[1]
[5]]
Normalized List: [[2.25 ]
[0.375]
[0. ]
[0.75 ]
[2.625]
[1.125]
[3. ]
[0.375]
[1.875]]
在 Python 中手动归一化数字列表
我们还可以通过为其编写完整的代码来手动归一化数字列表,该代码使用与上面讨论的归一化相同的公式。
示例代码:
list = [6, 1, 0, 2, 7, 3, 8, 1, 5]
print("Original List:", list)
xmin = min(list)
xmax = max(list)
for i, x in enumerate(list):
list[i] = (x - xmin) / (xmax - xmin)
print("Normalized List:", list)
输出:
Original List: [6, 1, 0, 2, 7, 3, 8, 1, 5]
Normalized List: [0.75, 0.125, 0.0, 0.25, 0.875, 0.375, 1.0, 0.125, 0.625]
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串