np.linalg.norm

导读 `np.linalg.norm` 是 NumPy 库中的一个函数,用于计算向量或矩阵的范数(norm)。范数是一个衡量向量大小或矩阵“能量”的量度。在机器...

`np.linalg.norm` 是 NumPy 库中的一个函数,用于计算向量或矩阵的范数(norm)。范数是一个衡量向量大小或矩阵“能量”的量度。在机器学习和科学计算中,计算范数是很常见的操作。

该函数有几种使用方式,主要取决于你传递给它的参数类型。以下是一些常见的使用场景:

### 对于向量(一维数组)

计算向量的欧几里得范数(也称为L2范数):

```python

import numpy as np

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

norm_v = np.linalg.norm(v) # 计算向量的欧几里得范数

```

### 对于矩阵(二维数组)

计算矩阵的Frobenius范数(也是L2范数):这是矩阵所有元素的平方和的平方根。这对于评估矩阵的“大小”很有用。例如:

```python

A = np.array([[1, 2], [3, 4]]) # 一个矩阵

frobenius_norm_A = np.linalg.norm(A) # 计算矩阵的Frobenius范数(L2范数)

```

### 指定不同的范数类型

除了默认的欧几里得和Frobenius范数外,你还可以指定其他类型的范数。例如,你可以计算L1范数(所有元素的绝对值之和)或无穷大范数(所有行上元素绝对值的最大值)。为此,你可以使用 `ord` 参数来指定范数的类型:

```python

# 计算向量的L1范数(所有元素的绝对值之和)

l1_norm_v = np.linalg.norm(v, ord=1) # v是一个向量

# 计算矩阵的最大列和的绝对值的最大值(无穷大范数)或者说谱范数(最大特征值的绝对值)

max_col_norm_A = np.linalg.norm(A, ord=np.inf) # A是一个矩阵

```

总之,`np.linalg.norm` 是一个强大的函数,可以方便地计算向量和矩阵的多种不同类型的范数。它在许多科学计算和机器学习应用中都非常有用。

版权声明:本文由用户上传,如有侵权请联系删除!