python自学笔记14 NumPy 线性代数

在Numpy库中有专门的linalg 模块用来做线性代数相关的运算。

本文中线性代数的一般概念不会解释

拆解矩阵

鸢尾花数据矩阵结构如下(150 × 4):

取其中的行向量和列向量:

python 复制代码
# 导入包
import numpy as np
from sklearn.datasets import load_iris
# 从sklearn导入鸢尾花数据
iris = load_iris()
X = iris.data
# 提取四个行向量 (二维数组)
x_row_1 = X[[1 - 1], :]
x_row_2 = X[[2 - 1], :]
x_row_51 = X[[51 - 1], :]
x_row_101 = X[[101 - 1], :]

# 提取四个列向量 (二维数组)
x_col_1 = X[:, [0]]
x_col_2 = X[:, [1]]
x_col_3 = X[:, [2]]
x_col_4 = X[:, [3]]

向量运算

向量的模

python 复制代码
norm_x_row_1 = np.linalg.norm(x_row_1)
norm_x_row_2 = np.linalg.norm(x_row_2)
norm_x_row_51 = np.linalg.norm(x_row_51)
norm_x_row_101 = np.linalg.norm(x_row_101)

向量单位化

python 复制代码
unit_x_row_1 = x_row_1 / norm_x_row_1
unit_x_row_2 = x_row_2 / norm_x_row_2
unit_x_row_51 = x_row_51 / norm_x_row_51
unit_x_row_101 = x_row_101 / norm_x_row_101

向量内积

python 复制代码
inner_prod_x_row_1_2 = np.dot(x_row_1[0], x_row_2[0])
inner_prod_x_row_1_51 = np.dot(x_row_1[0], x_row_51[0])
inner_prod_x_row_1_101 = np.dot(x_row_1[0], x_row_101[0])

向量夹角

下面的代码先求内积是因为单位向量的内积就是余弦值

python 复制代码
# 计算单位向量内积
dot_product_1_51 = np.dot(unit_x_row_1[0],
						  unit_x_row_51[0])
# 将结果转化为弧度
angle_1_51 = np.arccos(dot_product_1_51)
# 将结果转化为角度
angle_1_51 = np.rad2deg(angle_1_51)

这里补充一个数学上的概念:

矩阵运算

矩阵乘法

python 复制代码
# 第一个格拉姆矩阵
G = X.T @ X
# 第二个格拉姆矩阵
H = X @ X.T

矩阵的逆

python 复制代码
# 计算格拉姆矩阵G的逆矩阵
a G_inv = np.linalg.inv(G)

几个常见矩阵分解

Cholesky 分解

python 复制代码
# 对格拉姆矩阵G进行Cholesky分解
a L = np.linalg.cholesky(G)

G是正定阵

特征值分解 EVD

python 复制代码
# 对格拉姆矩阵G进行特征值分解
Lambdas, V = np.linalg.eig(G)

Lambdas的对角线是特征值,V的每一列是特征向量

奇异值分解 SVD

python 复制代码
# 鸢尾花数据矩阵X奇异值分解
U,S,VT = np.linalg.svd(X, full_matrices = False)
相关推荐
多米Domi01135 分钟前
0x3f 第49天 面向实习的八股背诵第六天 过了一遍JVM的知识点,看了相关视频讲解JVM内存,垃圾清理,买了plus,稍微看了点确定一下方向
jvm·数据结构·python·算法·leetcode
人工智能训练6 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
yaoming1686 小时前
python性能优化方案研究
python·性能优化
码云数智-大飞7 小时前
使用 Python 高效提取 PDF 中的表格数据并导出为 TXT 或 Excel
python
不会代码的小猴8 小时前
Linux环境编程第六天笔记--system-V IPC
linux·笔记
乌恩大侠8 小时前
【笔记】USRP 5G 和 6G 参考架构
笔记·5g
biuyyyxxx8 小时前
Python自动化办公学习笔记(一) 工具安装&教程
笔记·python·学习·自动化
极客数模9 小时前
【2026美赛赛题初步翻译F题】2026_ICM_Problem_F
大数据·c语言·python·数学建模·matlab
舟舟亢亢9 小时前
Java集合笔记总结
java·笔记
丝斯201110 小时前
AI学习笔记整理(66)——多模态大模型MOE-LLAVA
人工智能·笔记·学习