
上次笔记,完成了第十六章的所有部分,巩固了Numpy的数组操作。
今天开始第十七章,也是十分重要的一章:使用Numpy的线性代数工具。
线性代数是一个十分有用的东西,问题是大学数学的知识我已经全部忘光了,话说大学学习线性代数的时候,我也是非常痛苦的,因此不如趁着学习这张内容,结合老师的讲解视频➕我的AI编程教练,一起来攻克一下难关吧~
今天的学习内容不多,就学前两个小节:
17.1 Numpy的linalg模块
17.2 矩阵的拆解
--
17.1 Numpy的linalg模块
1. “linalg”是“linear algebra”的缩写,也就是“线性代数”本身。
2. 这个模块主要包括线性代数运算的核心函数。
3. 当然,这些核心函数,我全部都忘光光了(😂),所以让AI帮忙解释,我用我自己的话来理解:线性代数就是用来处理“多个数一起算”这个复杂问题的工具箱。
(1)矩阵分解:就是将“大问题”化为“小问题”的工具,也就是“拆解”的动作。

(2)矩阵的逆、行列式:就是相当于数学里的“撤销键”

矩阵的行列式:用来判断一个矩阵是否可逆,也可进行几何意义上的拉伸缩放

(3)求解线性方程组:用numpy来运行复杂的线性方程组,避免人手计算

(4)计算矩阵的特征值和特征向量:找到计算时“不变的核心”


(5)计算范数:用来测量“大小”的尺子


4. 这里AI给到一个框架,可以窥见线性代数是如何应用于实际生活的:
# 第1步:收集数据(用户-商品评分矩阵)评分矩阵 = 巨大矩阵 # 行=用户,列=商品# 第2步:SVD分解(矩阵分解)U, S, Vt = np.linalg.svd(评分矩阵, full_matrices=False)# U: 用户兴趣特征# S: 特征重要性# Vt: 商品属性特征# 第3步:降维(用特征值决定保留多少)重要特征数 = 10 # 只保留最重要的10个特征U_reduced = U[:, :重要特征数]S_reduced = np.diag(S[:重要特征数])Vt_reduced = Vt[:重要特征数, :]# 第4步:重建矩阵(预测缺失评分)预测评分 = U_reduced @ S_reduced @ Vt_reduced# 第5步:计算推荐可信度(用范数)预测误差 = np.linalg.norm(评分矩阵 - 预测评分, 'fro')# Frobenius范数:矩阵的"L2范数"# 第6步:解线性方程组优化参数# 最小化误差,找到最佳特征数
5. 书本也给到特定的numpy linalg模块代码和示范应用:
(1)计算线性代数函数模块:如
numpy.linalg.inv() : 计算矩阵的逆
numpy.linalg.pinv(): 计算矩阵的伪逆
(2)向量函数计算模块:如
numpy.linalg.norm():计算向量的范数
numpy.linalg.dot():计算向量的点积
(3)矩阵分解函数模块:如
numpy.linalg.cholesky():计算cholesky分解
numpy.linalg.eig():计算矩阵的特征值和特征向量
numpy.linalg.svd():计算奇异值分解
--
17.2 矩阵的拆解
这个部分,从“矩阵的视角”,看如何对二维数组进行切片。
1. 将鸢尾花数据(本身为150行x4列的表格),看作“150个行向量”堆叠而成的数据形式,且每个行向量的形状为1x4(我理解为:将这个150行的表格横着“切”150刀,每个行向量类似于薄薄的一片,一片里有四个小方块)。这就是将矩阵进行行向量的拆解。
2. 提取其中特定行向量的操作:
# 提取四个特定的行向量 (二维数组)x_row_1 = X[[1 - 1],:] # 相当于 X[[0], :]# 结合之前“切片”的知识,以上代码相当于:# 从150行的鸢尾花数据中,取出第0层的数据# 并且用“:“表示这层所有数据都要拿下来x_row_2 = X[[2 - 1],:]x_row_51 = X[[51 - 1], :]x_row_150 = X[[150 - 1], :]
3. 提取特定列向量的操作:
# 提取四个列向量 (二维数组)x_col_1 = X[:, [0]]x_col_2 = X[:, [1]]x_col_3 = X[:, [2]]x_col_4 = X[:, [3]]
--
今天比较简单,我也刻意控制了一下学习的难度。
书本这章引用了特斯拉的原话,我很喜欢,放在这里勉励一下自己:
“我的大脑知识一个接收器。宇宙有一个核心,我们从中获得知识、力量和灵感。这个核心的秘密,我没有深入了解,但我知道它的存在”。
(My brain is only a receiver, in the Universe there is a core from which we obtain knowledge, strength and inspiration. I have not penetrated into the secrets of this core, but I know that it exists.)
--
笔记写于:2026年2月27日23:01:10
结束于:2026年2月27日23:29:17
用时:约半小时
--