np.linalg.norm()函数解释 多举例解释, 参数使用
时间: 2023-11-02 20:57:51 浏览: 200
np.linalg.norm()函数是NumPy库中的线性代数模块(linalg)中的函数之一,用于计算向量或矩阵的范数。它的语法如下:
```python
np.linalg.norm(x, ord=None, axis=None)
```
参数解释:
- `x`: 数组,可以是一维或多维数组。
- `ord`: 范数的类型,默认为None,表示计算二范数(欧氏距离)。也可以是以下值之一:
- None: 计算二范数(默认值)。
- 'fro': 计算Frobenius范数(矩阵的所有元素平方和的平方根)。
- int值:计算p范数,其中p是一个正整数。例如,1代表计算一范数(绝对值之和),2代表计算二范数(默认值)。
- np.inf: 计算无穷范数(向量或矩阵中绝对值的最大值)。
- `axis`: 用于计算范数的轴。当`x`是多维数组时,可以指定对哪个轴进行计算。默认为None,表示计算整个数组的范数。
下面是一些示例:
示例1:计算向量的二范数
```python
import numpy as np
v = np.array([3, 4])
norm_v = np.linalg.norm(v)
print(norm_v) # 输出: 5.0
```
示例2:计算矩阵的Frobenius范数
```python
import numpy as np
A = np.array([[1, 2], [3, 4]])
norm_A = np.linalg.norm(A, ord='fro')
print(norm_A) # 输出: 5.477225575051661
```
示例3:计算矩阵的一范数和无穷范数
```python
import numpy as np
A = np.array([[1, -3], [2, 4], [-1, 2]])
norm_1 = np.linalg.norm(A, ord=1, axis=0) # 沿着列计算一范数
norm_inf = np.linalg.norm(A, ord=np.inf, axis=1) # 沿着行计算无穷范数
print(norm_1) # 输出: [4. 9.]
print(norm_inf) # 输出: [3. 6. 3.]
```
这些示例展示了`np.linalg.norm()`函数在计算向量和矩阵范数时的一些用法。你可以根据具体情况选择合适的参数来计算不同类型的范数。
阅读全文