Python中np.linalg.norm()用法实例总结

  • Post category:Python

Python中np.linalg.norm()用法实例总结

在Python中,我们可以使用NumPy库中的np.linalg.norm()函数来计算向量或矩阵的范数。本攻略将详细讲解np.linalg.norm()函数的用法,并提供两个示例。

np.linalg.norm()函数的基本用法

np.linalg.norm()函数可以接受三个参数:xord和axis。其中,x表示要计算范数的向量或矩阵,ord表示范数的类型,axis`表示计算范数的轴。

下面是一个示例:

import numpy as np

# 创建一个二维数组
arr = np.array([[1, 2], [3, 4]])

# 计算二维数组的Frobenius范数
norm = np.linalg.norm(arr)

# 打印结果
print(norm)

在上面的示例中,我们首先创建了二维数组。然后我们使用np.linalg.norm()函数计算了这个二维数组的Frobenius范数,并将结果存储在`norm变量中。最后,我们打印出了结果。

ord参数的用法

ord参数用于指定计算范数的类型。ord可以取以下值:

  • None:默认值,表示计算Frobenius范数。
  • inf:表示计算向量或矩阵的最大值范数。
  • -inf:表示计算向量或矩阵的最小值范数。
  • 0:表示计算向量或矩阵的零范数。
  • 1:表示计算向量或矩阵的一范数。
  • -1:表示计算向量或矩阵的负一范数。
  • 2:表示计算向量或矩阵的二范数。
  • -2:表示计算向量或矩阵的负二范数。

下面是一个示例:

import numpy as np

# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])

# 计算一维数组的一范数和二范数
norm1 = np.linalg.norm(arr, ord=1)
norm2 = np.linalg.norm(arr, ord=2)

# 打印结果
print(norm1)
print(norm2)

在上面的示例中,我们首先创建了一个一维数组。然后我们使用np.linalg.norm()函数分别计算了这个一维数组的一范数和二范数,并将结果存储在norm1norm2变量中。最后,我们打印出了结果。

axis参数的用法

axis参数用于指定计算范数的轴。当x为二维数组时,axis可以取以下值:

  • None:默认值,表示计算Frobenius范数。
  • 0:表示计算每列的范数。
  • `1:表示计算每行的范数。

下面是一个示例:

import numpy as np

# 创建一个二维数组
arr = np.array([[1, 2], [3, 4], [5, 6]])

# 计算每列的二范数
norm = np.linalg.norm(arr, axis=0)

# 打印结果
print(norm)

在上面的示例中,我们首先创建了一个二维数组。然后我们使用np.linalg.norm()函数计算了这个二维数组每列的二范数,并将结果存储在norm变量中。最后,我们打印出了结果。

示例一:计算向量的二范数

下面是一个计算向量的二范数的示例:

import numpy as np

# 创建一个一维数组
arr = np.array([1, 2, 3, 4, 5])

# 计算一维数组的二范数
norm = np.linalg.norm(arr, ord=2)

# 打印结果
print(norm)

在上面的示例中,我们首先创建了一个一维数组。然后我们使用np.linalg.norm()函数计算了这个一维数组的二范数,并将结果存储在norm变量中。最后,我们打印出了结果。

示例二:计算矩阵每行的一范数

下面是一个计算矩阵每行的一范数的示例:

import numpy as np

# 创建一个二维数组
 = np.array([[1, 2], [3, 4], [5, 6]])

# 计算每行的一范数
norm = np.linalg.norm(arr, ord=1, axis=1)

# 打印结果
print(norm)

在上面的示例中,我们首先创建了一个二维数组。然后我们使用np.linalg.norm()函数计算了这个二维数组每行的一范数,并将结果存储在norm变量中。最后,我们打印出了结果。