当前位置: 首页 > news >正文

python自学笔记14 NumPy 线性代数

在Numpy库中有专门的linalg 模块用来做线性代数相关的运算。
本文中线性代数的一般概念不会解释

拆解矩阵

鸢尾花数据矩阵结构如下(150 × 4):
在这里插入图片描述
取其中的行向量和列向量:

# 导入包
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]]

向量运算

向量的模

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)

向量单位化

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

向量内积

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])

向量夹角

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

# 计算单位向量内积
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)

这里补充一个数学上的概念:
在这里插入图片描述

矩阵运算

矩阵乘法

# 第一个格拉姆矩阵
G = X.T @ X
# 第二个格拉姆矩阵
H = X @ X.T

矩阵的逆

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

几个常见矩阵分解

Cholesky 分解

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

G是正定阵

特征值分解 EVD

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

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

奇异值分解 SVD

# 鸢尾花数据矩阵X奇异值分解
U,S,VT = np.linalg.svd(X, full_matrices = False)
http://www.dtcms.com/a/353529.html

相关文章:

  • 嵌入式linux相机(1)
  • Chrome插件开发【storage】
  • 重学JS-005 --- JavaScript算法与数据结构(五)回顾 DOM 操作
  • 实战Kaggle比赛:狗的品种识别(ImageNet Dogs)
  • SpringBoot整合RabbitMQ:从消息队列基础到高可用架构实战指南
  • 视频孪生技术在人工智能领域的应用价值:从虚实融合到智能决策
  • 人工智能在医疗风险预警中的技术应用综述
  • 《零基础入门AI: 目标检测基础知识》
  • Apache Commons Lang 3
  • 设备电机状态监测:通往预测性维护与效能飞升之路
  • AutoMQ 荣获 AWS Differentiated Partner 顶级认证!
  • 基于改进蜂群优化算法的高频金融波动率预测系统 (源码+论文+部署+安装)
  • ES02-常用API
  • qt c++ QTableWidget
  • Gopher URL协议与SSRF二三事
  • 帕累托优化:多目标决策的智慧与艺术
  • “下一代”图像模型——ComfyUI-Flux-Krea本地部署教程,体验划时代的图像质量
  • 计算机视觉(三):opencv环境搭建和图片显示
  • Optional 从 Java 8 到 21 的演进之路
  • 每日算法题【链表】:链表分割、链表的回文结构
  • 关于vscode的右键常用操作以及自定义快捷键
  • 密码管理中注释与重定向密码安全隐患及修复方案
  • 高并发内存池(12)-ThreadCache回收内存
  • Virtual PLCnext Controller 本地网络部署平台
  • Pandas DataFrame 列数操作完全指南
  • 高通平台蓝牙学习-- 基于WCN685x 的蓝牙低功耗(LE)功能
  • 浏览器与计算机网络
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘click’问题
  • k8s部署pgsql集群
  • 【Spring Cloud 微服务】5.架构的智慧枢纽:深度剖析 Nacos 注册中心