NumPy norm()

范数(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 范数是通过对每列元素的绝对值求和得到的。

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战