numpy中线性代数运算技巧探秘
发布时间: 2024-05-03 04:52:21 阅读量: 82 订阅数: 42
![numpy中线性代数运算技巧探秘](https://img-blog.csdnimg.cn/20201004032827556.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2Njc3NzMjI=,size_16,color_FFFFFF,t_70)
# 2.1 矩阵创建和初始化
### 2.1.1 数组到矩阵的转换
NumPy提供了`np.array()`函数将数组转换为矩阵。该函数接受一个一维数组作为输入,并返回一个具有相同形状和数据类型的矩阵。例如:
```python
import numpy as np
# 创建一维数组
arr = np.array([1, 2, 3, 4, 5])
# 将数组转换为矩阵
mat = np.array([[1, 2],
[3, 4],
[5, 6]])
print(mat)
```
输出:
```
[[1 2]
[3 4]
[5 6]]
```
# 2. 矩阵运算技巧
### 2.1 矩阵创建和初始化
#### 2.1.1 数组到矩阵的转换
NumPy提供了多种方法将数组转换为矩阵。最简单的方法是使用`np.array()`函数,它接受一个数组作为输入并返回一个矩阵。例如:
```python
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(arr)
```
输出:
```
[[1 2 3]
[4 5 6]]
```
#### 2.1.2 矩阵的属性和操作
矩阵具有以下属性:
- `shape`:返回矩阵的形状,即行数和列数。
- `dtype`:返回矩阵的数据类型。
- `ndim`:返回矩阵的维度,对于矩阵始终为 2。
矩阵支持以下操作:
- **索引**:使用方括号索引矩阵中的元素。例如:`arr[0, 0]`返回矩阵第一行的第一个元素。
- **切片**:使用冒号切片矩阵。例如:`arr[0:2, 1:3]`返回矩阵前两行和第二列和第三列。
- **转置**:使用`.T`转置矩阵。例如:`arr.T`返回矩阵的转置。
### 2.2 矩阵运算
#### 2.2.1 基本算术运算
矩阵支持基本算术运算,包括加法、减法、乘法和除法。这些运算符逐元素应用于矩阵中的元素。例如:
```python
arr1 = np.array([[1, 2, 3], [4, 5, 6]])
arr2 = np.array([[7, 8, 9], [10, 11, 12]])
print(arr1 + arr2)
print(arr1 - arr2)
print(arr1 * arr2)
print(arr1 / arr2)
```
输出:
```
[[ 8 10 12]
[14 16 18]]
[[-6 -6 -6]
[-6 -6 -6]]
[[ 7 16 27]
[40 55 72]]
[[0.14285714 0.25 0.33333333]
[0.4 0.45454545 0.5]]
```
#### 2.2.2 矩阵乘法和逆运算
矩阵乘法使用`@`运算符执行。矩阵乘法的结果是一个新矩阵,其形状为第一个矩阵的行数乘以第二个矩阵的列数。例如:
```python
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6], [7, 8]])
print(arr1 @ arr2)
```
输出:
```
[[19 22]
[43 50]]
```
矩阵逆运算使用`np.linalg.inv()`函数执行。矩阵的逆运算返回一个新矩阵,其形状与原始矩阵相同。例如:
```python
arr = np.array([[1, 2], [3, 4]])
print(np.linalg.inv(a
```
0
0