如何对NumPy数组进行标准化处理,使其数值范围正好在0和1之间
在这篇文章中,我们将介绍如何对NumPy数组进行规范化处理,使其数值正好在0和1之间。
对数据进行归一化处理,使数据在所有记录中以相同的比例出现。正常化后,数据中的最小值将被正常化为0,最大值被正常化为1。所有其他的值将在0到1之间。对于以不同尺度表示的数据,归一化是必要的。因为机器学习模型可能会受到数值较高的参数的过度影响。有不同的方法来归一化数据。其中一个标准程序是最小-最大值方法。
使用最小最大值进行归一化
在这里,数据的规范化可以通过用数据中的最小值减去数据,然后用结果除以给定数据中的最大值和最小值之差来完成。
示例
NumPy数组中的最大值和最小值可以通过min()和max()来确定。使用最小-最大值进行规范化的公式如下
归一化数据= ( 数据- 最小(数据))/( 最大(数据)- 最小(数据) )
输出
也有其他方法可以使数据正常化。它们是
- 使用sklearn MinMaxScaler进行规范化处理
- 使用numpy.linalg.norm进行规范化处理
- 使用数学公式进行归一化
使用sklearn MinMaxScaler进行规范化处理
在Python中,sklearn模块提供了一个叫做MinMaxScaler的对象,它使用最小值和最大值对给定的数据进行标准化。这里fit_tranform方法使用MinMaxScaler对象在0和1之间对数据进行缩放。
输出
使用numpy.linalg .norm进行归一化。
NumPy库提供了一个叫做norm的方法,它可以返回八个不同的矩阵规范中的一个,或者无数个向量规范中的一个。它完全取决于norm方法中的ord参数。默认情况下,规范考虑的是Frobenius规范。这里的数据是通过将给定的数据与norm方法返回的norm相除来实现规范化的。
输出
使用数学公式进行归一化
在这里,通过用给定数据的平方根之和对数据进行归一化处理。为了实现这一点,需要一个简单的NumPy库,它提供了平方根和总和的方法,有助于减少代码行。下面是使用数据的平方之和对数据进行标准化的代码
输出