范数(Norm)是一个数学概念,用于衡量数学对象的“大小”或“长度”,例如矩阵。
示例
numpy.linalg.norm()
函数根据指定的阶数计算给定矩阵的范数。
import numpy as np
# create a matrix
matrix1 = np.array([[1, 2], [3, 4]])
# compute norm of the matrix
norm = np.linalg.norm(matrix1)
print(norm)
# Output: 5.477225575051661
norm() 语法
norm()
的语法如下:
numpy.linalg.norm(matrix, ord=None, axis=None, keepdims=False)
norm() 参数
norm()
方法接受以下参数:
matrix
- 输入的、用于计算范数的矩阵ord
(可选) - 指定范数的阶数axis
(可选) - 指定计算范数的轴或轴组keepdims
(可选) - 决定输出的维度是否被缩减
norm() 返回值
norm()
方法以标量值的形式返回计算出的输入矩阵的范数。
示例 1:计算矩阵的 Frobenius 范数
Frobenius 范数,也称为欧几里得范数,是用于衡量矩阵大小或幅度的特定范数。
import numpy as np
# create a matrix
matrix1 = np.array([[11, 22], [31, 28]])
# compute the norm of the matrix using numpy.linalg.norm()
norm = np.linalg.norm(matrix1)
print(norm)
输出
48.47679857416329
在此,np.linalg.norm()
计算 matrix1 的 Frobenius 范数,即其元素平方绝对值之和的平方根。
注意:默认情况下,numpy.linalg.norm()
函数为矩阵计算 Frobenius 范数。
示例 2:计算特定轴上的 L1 范数
L1 范数是向量空间中距离或幅度的度量。对于矩阵,L1 范数是通过对其元素绝对值求和来计算的。
import numpy as np
# create a matrix
matrix1 = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
# compute L1 norm along the rows (axis=0)
row_norm = np.linalg.norm(matrix1, ord=1, axis=0)
# compute L1 norm along the columns (axis=1)
col_norm = np.linalg.norm(matrix1, ord=1, axis=1)
print("L1 norm along rows: ", row_norm)
print("L1 norm along columns: ", col_norm)
输出
L1 norm along rows: [12. 15. 18.] L1 norm along columns: [ 6. 15. 24.]
这里,通过对每行元素的平方绝对值求和并取平方根,计算了每行上的 L2 范数。
而 L1 范数是通过对每列元素的绝对值求和得到的。