矩阵归一化是指对矩阵元素进行缩放,使其值保持在 0 到 1 之间。根据矩阵的阶数,函数 linalg.norm() 返回七/八个不同的矩阵范数之一,或者在某些情况下返回许多无限矩阵范数之一,具体取决于矩阵阶数的值。
归一化有助于将巨大的数据值缩放到合理的数值范围,以便模型训练算法中较小的值不会被较大的值压倒。它有助于降低机器学习算法对特征规模的敏感度。归一化将矩阵的元素重新调整为特定的大小而不改变其方向。
另请阅读:Numpy linalg.eigvals – 计算一般矩阵的特征值
安装 Numpy
为了使用此功能,您需要在系统中安装 numpy(如果您尚未安装)。在命令提示符中运行以下代码来安装 numpy。确保在管理员模式下运行命令提示符以正确安装该软件包。
pip install numpy. |
如果您在 python 项目中使用 anaconda 或spyder,则必须在管理员模式下在命令提示符中运行下面给出的代码:
conda install -c anaconda numpy |
另请阅读:Numpy linalg.inv – 计算矩阵的(乘法)逆矩阵
Numpy linalg.norm() 函数的语法
numpy.linalg.norm(m, ord, axis) |
参数为:
m
:arraylike:这是要计算归一化的输入矩阵。ord
:int或none类型(可选):规范化的顺序。axis:
none 类型:返回向量或矩阵范数,如果它是整数值,则指定轴以及将计算矩阵 m 的向量范数。
该函数返回R
: ,这是归一化矩阵或向量。
Numpy linalg.norm() 函数的一些示例
让我们看一下 numpy linalg.norm() 函数的几个示例。
示例 1:预定义矩阵的简单说明
第一个示例是预定义矩阵的简单说明,其范数可以计算如下:
#from numpy calling the function import numpy as py #pre defined matrix m = [[ 4 , 2 ],[ 1 , 3 ]] print ( "the initial matrix is=" ) print (m) #displaying the matrix print ( "The normalized result is=:" ) #using the function R = py.linalg.norm(m) #displaying the result print (R) |
上述代码的输出将是:
the initial matrix is= [[4, 2], [1, 3]] The normalized result is=: 5.477225575051661 |
第二个示例:取一个随机矩阵并将其标准化
在此示例中,我们将采用随机矩阵并使用 numpy.linalg.norm() 函数对其进行标准化。
#from numpy calling the function import numpy as py num = py.random.random() #generating random number using the function random #creating the random matrix m = py.array([[py.sin(num), - py.cos(num)], [py.cos(num), py.sin(num)]]) print ( "the initial matrix is=" ) print (m) #displaying the matrix #using the function print ( "The normalized matrix is:" ) R = py.linalg.norm(m) #displaying the result print (R) |
上述代码的输出将是:
the initial matrix is= [[ 0.27126711 -0.96250411] [ 0.96250411 0.27126711]] The normalized matrix is: 1.4142135623730951 |
第三个示例:跨特定轴标准化矩阵
现在,让我们通过指定 axis 参数来规范化跨特定轴的矩阵。
#from numpy calling the function import numpy as py #predefined matrix m = py.array([[ 3 , 5 , 7 ], [ 9 , 11 , 13 ], [ 15 , 17 , 19 ]]) print ( "the initial matrix is=" ) print (m) #displaying the matrix #using the function print ( "The normalized matrix is:" ) R = py.linalg.norm(m, axis = 1 ) #displaying the result print (R) |
上述代码的输出将是:
the initial matrix is= [[ 3 5 7] [ 9 11 13] [15 17 19]] The normalized matrix is: [ 9.11043358 19.26136028 29.58039892] |
第四个示例:获取用户输入的矩阵和轴的值
最后但并非最不重要的一点是,让我们获取用户输入的矩阵值,然后提示用户定义用于标准化的轴。
#from numpy calling the function import numpy as py #taking user input row = int ( input ( "Enter the number of rows:" )) col = int ( input ( "Enter the number of columns:" )) num = int ( input ( "specify one axis accross which the matrix is to be normalized" )) # Initializing the required matrix m = [] print ( "enter the values rowwise:" ) # For user input for i in range (row): # loop for row entries b = [] for j in range (col): # loop for column entries b.append( int ( input ())) m.append(b) print ( "the initial matrix is=" , m) #normalizing result = py.linalg.norm(m, axis = num) #displaying the result print ( "the normalized matrix is=" ,result) |
上述代码的输出将是:
Enter the number of rows:3 Enter the number of columns:3 specify one axis accross which the matrix is to be normalized1 enter the values rowwise: 4 7 10 13 16 19 22 25 28 the initial matrix is= [[4, 7, 10], [13, 16, 19], [22, 25, 28]] the normalized matrix is= [12.84523258 28.03569154 43.50861984] |
概括
numpy 包有许多非常有用和高效的函数,可用于科学计算,否则可能会很乏味且冗长。要了解有关 numpy 及其各种功能和特性的更多信息,请访问官方网站。