np.linalg.norm()

发布于:2024-05-14 ⋅ 阅读:(155) ⋅ 点赞:(0)

np.linalg.norm()是NumPy中用于计算向量或矩阵的范数的函数。它可以计算不同类型的范数,包括向量的L1范数、L2范数以及矩阵的Frobenius范数等。

基本用法如下,

numpy.linalg.norm(x, ord=None, axis=None, keepdims=False)
  • x:输入数组,可以是向量或矩阵
  • ord:指定范数类型。常见的取值包括:

1、None(默认):计算向量的L2范数或矩阵的Frobenius范数

2、'fro':计算矩阵的Frobenius范数

3、1:计算向量的L1范数或矩阵的列和范数(取列和的最大值)

4、2:计算向量的L2范数或矩阵的谱范数

5、np.inf:计算向量的L∞范数(取最大值)或矩阵的行和范数(取行和的最大值)

  • axis:指定沿哪个轴计算范数。如果axis是一个整数,则计算沿该轴的范数。如果axis是一个元组,则计算跨指定轴的范数
  • keepdims:如果为True,则保持原数组的维度

以下是简单的代码示例,

import numpy as np

# 示例向量
v = np.array([1, 2, 3])

# 计算向量的 L2 范数(默认)
l2_norm = np.linalg.norm(v)
print("L2 norm of v:", l2_norm)

# 计算向量的 L1 范数
l1_norm = np.linalg.norm(v, ord=1)
print("L1 norm of v:", l1_norm)

# 计算向量的 L∞ 范数
inf_norm = np.linalg.norm(v, ord=np.inf)
print("L∞ norm of v:", inf_norm)

# 示例矩阵
M = np.array([[1, 2, 3],
              [4, 5, 6]])

# 计算矩阵的 Frobenius 范数(默认)
fro_norm = np.linalg.norm(M)
print("Frobenius norm of M:", fro_norm)

# 计算矩阵的 L1 范数(列和范数)
l1_matrix_norm = np.linalg.norm(M, ord=1)
print("L1 norm of M:", l1_matrix_norm)

# 计算矩阵的 L∞ 范数(行和范数)
inf_matrix_norm = np.linalg.norm(M, ord=np.inf)
print("L∞ norm of M:", inf_matrix_norm)

输出结果如下,

L2 norm of v: 3.7416573867739413
L1 norm of v: 6.0
L∞ norm of v: 3.0
Frobenius norm of M: 9.539392014169456
L1 norm of M: 9.0
L∞ norm of M: 15.0

网站公告

今日签到

点亮在社区的每一天
去签到