Python实现向量的各类计算
时间: 2023-11-05 15:06:26 浏览: 126
向量的计算实现
Python中常用的向量计算库有NumPy和SciPy。
1. 向量加法和减法
向量加法和减法可以直接使用NumPy中的加法和减法运算符实现:
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 向量加法
c = a + b
print(c) # 输出 [5 7 9]
# 向量减法
d = a - b
print(d) # 输出 [-3 -3 -3]
```
2. 向量点积
向量点积也称为内积,可以使用NumPy中的dot函数实现:
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 向量点积
c = np.dot(a, b)
print(c) # 输出 32
```
3. 向量叉积
向量叉积也称为外积,可以使用NumPy中的cross函数实现:
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 向量叉积
c = np.cross(a, b)
print(c) # 输出 [-3 6 -3]
```
4. 向量模长和单位向量
向量模长可以使用NumPy中的linalg.norm函数实现:
```python
import numpy as np
a = np.array([1, 2, 3])
# 向量模长
length = np.linalg.norm(a)
print(length) # 输出 3.7416573867739413
```
单位向量可以通过向量除以模长得到:
```python
import numpy as np
a = np.array([1, 2, 3])
# 单位向量
unit_vec = a / np.linalg.norm(a)
print(unit_vec) # 输出 [0.26726124 0.53452248 0.80178373]
```
5. 向量投影
向量投影可以使用向量点积和向量模长实现:
```python
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 向量投影
proj_b_a = np.dot(a, b) / np.linalg.norm(b) * b
print(proj_b_a) # 输出 [2.85714286 3.57142857 4.28571429]
```
其中`np.dot(a, b) / np.linalg.norm(b)`表示向量`a`在向量`b`上的投影长度,再乘以向量`b`的单位向量即得到向量`a`在向量`b`上的投影向量。
阅读全文