【基础】基于Numpy的矩阵运算
发布时间: 2024-06-27 20:26:32 阅读量: 56 订阅数: 96
![【基础】基于Numpy的矩阵运算](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4f929d181ea74049a388a99ea7ee3b2a~tplv-k3u1fbpfcp-zoom-in-crop-mark:1512:0:0:0.awebp)
# 2.1 矩阵的创建和初始化
NumPy 提供了多种创建和初始化矩阵的方法:
* **直接创建:**使用 `np.array()` 函数将列表、元组或其他可迭代对象转换为矩阵。
```python
import numpy as np
# 创建一个 3x3 矩阵
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
```
* **从标量创建:**使用 `np.full()` 或 `np.ones()` 函数创建由相同标量填充的矩阵。
```python
# 创建一个 3x3 矩阵,所有元素为 5
matrix = np.full((3, 3), 5)
```
* **从范围创建:**使用 `np.arange()` 函数创建包含指定范围内的值的矩阵。
```python
# 创建一个 1x10 矩阵,包含从 0 到 9 的值
matrix = np.arange(10)
```
* **从随机分布创建:**使用 `np.random.rand()` 或 `np.random.randn()` 函数创建包含随机分布值的矩阵。
```python
# 创建一个 3x3 矩阵,包含从 0 到 1 的均匀分布值
matrix = np.random.rand(3, 3)
```
# 2. NumPy矩阵运算理论
### 2.1 矩阵的创建和初始化
NumPy提供了多种方法来创建和初始化矩阵:
- **直接赋值:**使用嵌套列表或元组创建矩阵。例如:
```python
import numpy as np
# 创建一个 3x3 矩阵
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
```
- **函数创建:**使用 `np.zeros()`, `np.ones()`, `np.eye()` 等函数创建矩阵。例如:
```python
# 创建一个 3x3 全零矩阵
zero_matrix = np.zeros((3, 3))
# 创建一个 3x3 全一矩阵
one_matrix = np.ones((3, 3))
# 创建一个 3x3 单位矩阵
eye_matrix = np.eye(3)
```
- **从其他数据结构转换:**使用 `np.array()` 函数将列表、元组或字典转换为矩阵。例如:
```python
# 从列表转换为矩阵
list_matrix = np.array([[1, 2, 3], [4, 5, 6]])
# 从字典转换为矩阵
dict_matrix = np.array({(0, 0): 1, (0, 1): 2, (0, 2): 3, (1, 0): 4, (1, 1): 5, (1, 2): 6})
```
### 2.2 矩阵的数学运算
NumPy支持各种矩阵的数学运算,包括:
#### 2.2.1 加减乘除运算
- 加法和减法:使用 `+` 和 `-` 运算符。例如:
```python
matrix1 = np.array([[1, 2, 3], [4, 5, 6]])
matrix2 = np.array([[7, 8, 9], [10, 11, 12]])
result = matrix1 + matrix2
print(result) # 输出:[[ 8 10 12] [14 16 18]]
```
- 乘法:使用 `*` 运算符。矩阵乘法遵循线性代数规则。例如:
```python
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
result = matrix1 * matrix2
print(result) # 输出:[[19 22] [43 50]]
```
- 除法:使用 `/` 运算符。矩阵除法实际上是矩阵乘法的一种特殊形式,使用矩阵的逆矩阵。例如:
```python
matrix1 = np.array([[1, 2], [3, 4]])
matrix2 = np.array([[5, 6], [7, 8]])
result = matrix1 / matrix2
print(result) # 输出:[[0.2 0.33333333] [0.42857143 0.5]]
```
#### 2.2.2 矩阵的转置和逆矩阵
- 转置:使用 `T` 属性。转置将矩阵的行和列互换。例如:
```python
mat
```
0
0