理解向量、矩阵和张量运算,掌握现代科技背后的核心数学语言
线性代数是数学中研究向量、向量空间、线性变换和线性方程组的分支,它构成了现代科技世界的数学基础。从搜索引擎算法到计算机图形渲染,从量子力学到深度学习,线性代数无处不在。当我们使用社交媒体、进行在线购物或享受电影特效时,背后都有线性代数的力量在支撑。
本文将介绍线性代数的核心概念,并通过Python代码展示其实际应用。我们使用NumPy库,它是Python科学计算的基础工具。
import numpy as np # 导入NumPy库
1. 基础构建块:标量、向量、矩阵与张量
1.1 标量(Scalars) - 零维数据
标量是单个数值,是最基本的数学对象。在编程中表示为0维张量。
# 创建标量
x = np.array(3.0)
y = np.array(2.0)
# 基本运算
print(f"加法: {
x + y}")
print(f"乘法: {
x * y}")
print(f"除法: {
x / y}")
print(f"幂运算: {
x ** y}")
1.2 向量(Vectors) - 一维数据
向量是有序的数字列表,表示方向和大小的量。在数据科学中,一个向量可以表示一个数据样本的所有特征。
# 创建向量
temperature = np.array([22.5, 23.0, 24.5, 21.8, 20.5]) # 每日温度数据
sales = np.array([120, 135, 140, 125, 110]) # 每日销售额
# 向量运算
print("\n温度向量:", temperature)
print("平均温度:", np.mean(temperature))
print("温度范围:", np.max(temperature) - np.min(temperature))
print("点积(温度与销售额相关性):", np.dot(temperature, sales))
1.3 矩阵(Matrices) - 二维数据
矩阵是二维数字数组,可视为多个向量的集合。在机器学习中,数据集通常表示为矩阵。
# 创建用户-物品评分矩阵
# 行:用户,列:物品
ratings = np.array([
[5, 3, 0, 1], # 用户1
[4, 0, 0, 1], # 用户2
[1, 1, 0, 5], # 用户3
[1, 0, 0, 4], # 用户4
[0, 1, 5, 4] # 用户5
])
print("\n用户-物品评分矩阵:")
print(ratings)
print("矩阵形状(用户数, 物品数):", ratings.shape)
print("每件物品的平均评分:", np.mean(ratings, axis=0))
1.4 张量(Tensors) - 多维数据
张量是线性代数的通用数据结构,标量是0阶张量,向量是1阶,矩阵是2阶。图像、视频等复杂数据需要更高阶的张量表示。
# 创建3阶张量(时间序列数据)

最低0.47元/天 解锁文章
316

被折叠的 条评论
为什么被折叠?



