上一篇
Python中的向量概念详解 - 向量表示与操作指南
- Python
- 2025-08-18
- 945
Python中的向量:概念、表示与操作详解
向量是数学和计算机科学中的基本概念,广泛应用于机器学习、物理模拟、图形处理等领域。在Python中,向量通常表示为一维数组或列表,包含一组有序的数值元素。
什么是向量?
在数学中,向量是一个同时具有大小和方向的量。在编程中,向量通常表示为一系列数值:
- 一维数组 - 存储多个数值的有序集合
- 元素 - 向量中的每个数值称为元素
- 维度 - 向量中元素的数量决定其维度
在Python中表示向量
1. 使用Python列表
最简单的方式是使用Python内置的列表:
# 创建一个三维向量
vector = [2.5, 3.0, 1.7]
# 访问向量元素
print(vector[0]) # 输出: 2.5
# 修改向量元素
vector[1] = 4.2
print(vector) # 输出: [2.5, 4.2, 1.7]
2. 使用NumPy数组
NumPy是Python科学计算的核心库,提供了高效的多维数组对象:
import numpy as np
# 创建NumPy向量
vector = np.array([3, 5, 8])
print(vector) # 输出: [3 5 8]
print(type(vector)) # 输出: <class 'numpy.ndarray'>
print(vector.shape) # 输出: (3,)
向量基本运算
向量加法
两个相同维度的向量对应元素相加
v1 = np.array([2, 4, 6])
v2 = np.array([1, 3, 5])
result = v1 + v2
print(result) # 输出: [3 7 11]
向量减法
两个相同维度的向量对应元素相减
v1 = np.array([5, 7, 9])
v2 = np.array([2, 3, 4])
result = v1 - v2
print(result) # 输出: [3 4 5]
标量乘法
向量中的每个元素乘以一个标量
vector = np.array([1, 2, 3])
scalar = 3
result = scalar * vector
print(result) # 输出: [3 6 9]
点积(内积)
两个向量的对应元素相乘后求和
v1 = np.array([1, 2, 3])
v2 = np.array([4, 5, 6])
dot_product = np.dot(v1, v2)
print(dot_product) # 输出: 32 (1*4 + 2*5 + 3*6)
向量常用操作
计算向量范数(长度)
import numpy as np
vector = np.array([3, 4])
# 欧几里得范数(L2范数)
norm = np.linalg.norm(vector)
print(norm) # 输出: 5.0 (√(3²+4²)=5)
向量归一化
vector = np.array([1, 2, 3])
norm = np.linalg.norm(vector)
normalized_vector = vector / norm
print(normalized_vector)
# 输出: [0.26726124 0.53452248 0.80178373]
print(np.linalg.norm(normalized_vector)) # 输出: 1.0
计算向量夹角
v1 = np.array([1, 0])
v2 = np.array([0, 1])
dot_product = np.dot(v1, v2)
norm_v1 = np.linalg.norm(v1)
norm_v2 = np.linalg.norm(v2)
cos_theta = dot_product / (norm_v1 * norm_v2)
angle_rad = np.arccos(cos_theta)
angle_deg = np.degrees(angle_rad)
print(angle_deg) # 输出: 90.0
向量在实际应用中的用途
🧠
机器学习
特征向量表示数据点
🎮
游戏开发
表示位置、速度和方向
📊
数据分析
存储时间序列数据
🔬
科学计算
物理模拟中的力和运动
最佳实践建议
- 对于数值计算,优先使用NumPy数组而非Python列表
- 注意向量维度匹配,避免维度不匹配错误
- 使用NumPy内置函数进行向量运算(比手动循环更快)
- 处理大型数据集时考虑内存效率
- 了解广播机制(broadcasting)以简化操作
总结
向量是Python科学计算和数据处理的基础构建块。通过使用NumPy库,您可以高效地执行各种向量操作,为更复杂的数据科学和机器学习任务奠定基础。
本文由QinShuo于2025-08-18发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://liuhe.jltcw.com/20258429.html
发表评论