迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中对数字列表进行归一化

作者:迹忆客 最近更新:2023/12/17 浏览次数:

归一化意味着将给定的数据转换为另一个尺度。我们重新调整数据,使其介于两个值之间。大多数情况下,数据会在 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 数组并将其传递给函数。我们必须安装 NumPysklearn 软件包才能使用此功能。

示例代码:

# 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]

上一篇:如何在 Python 中创建具有特定大小的列表

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Python 中创建具有特定大小的列表

发布时间:2023/12/18 浏览次数:178 分类:Python

本教程介绍了如何在 Python 中创建具有特定大小的列表。当程序员提前知道元素数量时,为列表或数组预分配存储空间是程序员经常用地方式。

在 Python 中的列表中删除多个元素

发布时间:2023/12/18 浏览次数:188 分类:Python

我们可以使用 if...else 控制语句、列表推导式、列表切片和 for 循环从 Python 中的列表中删除多个元素。要从 Python 列表中删除多个值,我们可以删除列表的实际值或要从列表中删除的值的索引。

如何在 Python 中获取一个列表的平均值

发布时间:2023/12/18 浏览次数:142 分类:Python

本教程将演示如何在 Python 中使用 statistics.mean 获得一个给定列表的平均值。本教程介绍了如何在 Python 中计算一个列表的平均数。

在 Python 中将字典转换为列表

发布时间:2023/12/18 浏览次数:54 分类:Python

本文介绍如何在 Python 中将字典转换为列表。Python 中的字典是由键-值对组合而成。在 key 的帮助下,你可以访问字典里面的值。

从 Python 列表中删除某元素的所有出现

发布时间:2023/12/18 浏览次数:163 分类:Python

在本文中,我们将看到如何在 Python 中从一个 List 中删除一个元素的所有出现。在 Python 中,列表允许同一个元素多次出现。即使一个元素的值可能与其他元素相同

在Python中将十六进制转换为字节

发布时间:2023/12/18 浏览次数:153 分类:Python

本教程介绍了如何在Python中将十六进制值转换为字节文字。十六进制,通常简写为hex,使用16个符号(0-9,a-f)表示值,与十进制的10个符号形成对比。例如,十进制中的1000在十六进制中是3E8。

Python 中字符串前面的 b

发布时间:2023/12/18 浏览次数:175 分类:Python

b 表示法用于在 Python 中指定字节字符串。在 Python 中使用 b" 语句 b" 表示法用于在 Python 中指定 bytes 字符串。

如何在 Python 中把整型转换为二进制

发布时间:2023/12/18 浏览次数:148 分类:Python

本教程将演示如何在 Python 中把整数转换成二进制。本教程介绍了如何在 Python 中把一个整数转换成二进制。本教程还列出了一些示例代码,以阐述在 Python 中从 int 到二进制的不同转换方式。

如何将整型 int 转换为字节 bytes

发布时间:2023/12/18 浏览次数:117 分类:Python

本贴士介绍了在 Python 2.7 及 Python 3 中如何将整型 int 转换为字节 bytes。将整型 int 转换为字节 bytes 是将字节 bytes 转换为整型 int 的逆操作,本文中介绍的大多数的 int 到 bytes 的方法都是 bytes 到

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便