完整教程:9. NumPy 线性代数:矩阵运算与科学计算基础

news/2025/9/27 10:15:41/文章来源:https://www.cnblogs.com/slgkaifa/p/19114798

完整教程:9. NumPy 线性代数:矩阵运算与科学计算基础

NumPy 线性代数:矩阵运算与科学计算基础

线性代数是科学计算、数据分析和机器学习的核心基础。矩阵运算、向量点积、矩阵求逆、特征值分解等操作在实际问题中无处不在。NumPy 提供了强大的线性代数工具,能够高效处理大规模矩阵运算。

本文将系统讲解 NumPy 线性代数 的核心功能:

  1. 向量与矩阵的基本操作
  2. 点积、内积与外积
  3. 矩阵转置与逆矩阵
  4. 行列式与秩
  5. 特征值与特征向量
  6. 解线性方程组

1. 向量与矩阵的基本操作

在 NumPy 中,向量和矩阵都使用数组表示:

import numpy as np
# 向量
v = np.array([1, 2, 3])
# 矩阵
A = np.array([[1, 2],
[3, 4]])
B = np.array([[5, 6],
[7, 8]])
print("向量 v:", v)
print("矩阵 A:\n", A)

向量 v: [1 2 3]
矩阵 A:
[[1 2]
[3 4]]

  • NumPy 数组既可以表示向量,也可以表示矩阵。
  • 使用二维数组表示矩阵,操作方便且效率高。

2. 点积、内积与外积

2.1 向量点积

x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
dot_product = np.dot(x, y)
print("点积:", dot_product) # 32

点积: 32

2.2 外积

outer_product = np.outer(x, y)
print("外积:\n", outer_product)

外积:
[[ 4 5 6]
[ 8 10 12]
[12 15 18]]

2.3 矩阵乘法

C = np.dot(A, B)
print("矩阵乘法 A·B:\n", C)

矩阵乘法 A·B:
[[19 22]
[43 50]]

注意:* 表示逐元素乘法,而 np.dot()@ 表示矩阵乘法。

print("逐元素乘法 A*B:\n", A*B)
print("矩阵乘法 A@B:\n", A@B)

逐元素乘法 A*B:
[[ 5 12]
[21 32]]
矩阵乘法 A@B:
[[19 22]
[43 50]]


3. 矩阵转置与逆矩阵

矩阵的转置和求逆是线性代数中的基本操作。

3.1 矩阵转置

print("矩阵 A 转置:\n", A.T)

矩阵 A 转置:
[[1 3]
[2 4]]

3.2 矩阵求逆

A_inv = np.linalg.inv(A)
print("矩阵 A 的逆矩阵:\n", A_inv)
# 验证 A·A_inv 是否为单位矩阵
print("A·A_inv:\n", A @ A_inv)

矩阵 A 的逆矩阵:
[[-2. 1. ]
[ 1.5 -0.5]]
A·A_inv:
[[1.0000000e+00 0.0000000e+00]
[8.8817842e-16 1.0000000e+00]]

提示:只有方阵且行列式非零矩阵才可求逆。


4. 行列式与秩

行列式与秩反映了矩阵的重要性质。

4.1 行列式

det_A = np.linalg.det(A)
print("矩阵 A 行列式:", det_A)

矩阵 A 行列式: -2.0000000000000004

4.2 矩阵秩

rank_A = np.linalg.matrix_rank(A)
print("矩阵 A 秩:", rank_A)

矩阵 A 秩: 2

行列式为零意味着矩阵不可逆,而矩阵秩则反映了其行或列的线性独立性。


5. 特征值与特征向量

特征分解是 PCA、机器学习、物理建模中常用的工具。

eig_vals, eig_vecs = np.linalg.eig(A)
print("特征值:", eig_vals)
print("特征向量:\n", eig_vecs)

特征值: [-0.37228132 5.37228132]
特征向量:
[[-0.82456484 -0.41597356]
[ 0.56576746 -0.90937671]]

通过特征分解,可以提取矩阵最重要的方向性信息。


6. 解线性方程组

线性方程组 Ax = b 可以直接使用 np.linalg.solve 求解:

A = np.array([[3, 1],
[1, 2]])
b = np.array([9, 8])
x = np.linalg.solve(A, b)
print("方程组解:", x)
# 验证 Ax 是否等于 b
print("验证 Ax:", A @ x)

方程组解: [2. 3.]
验证 Ax: [9. 8.]

相比手动计算逆矩阵再相乘,np.linalg.solve 更快更稳定。


7. 小结

NumPy 线性代数模块提供了强大且高效的矩阵运算工具,包括:

  • 矩阵运算:点积、外积、矩阵乘法
  • 矩阵特性:转置、逆矩阵、行列式、秩
  • 特征分解:特征值与特征向量
  • 线性方程组求解np.linalg.solve

这些工具是科学计算、机器学习和数据分析中的核心基础,掌握它们可以为后续算法实现和数值模拟打下坚实基础。


上一篇:8. NumPy 随机数生成与概率分布
下一篇:10. NumPy 广播机制(Broadcasting):高效数组运算

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL: 时间戳演示

MySQL时间戳转换为日期格式测试环境:MYSQL 8 + win10 例子:-- 时间戳 为 10 位 SELECT UNIX_TIMESTAMP(2025-09-27 13:25:49 ); -- 返回:1758950749SELECT FROM_UNIXTIME( 1758950749, %Y-%m-%d %H:%i:%s ) -- 返回…

怎样做关键词网站全国信用企业信息系统

说一下数据库的事务隔离? 数据库事务隔离是指在多个事务同时并发执行的情况下,系统确保各个事务相互之间是隔离的,一个事务的执行不会影响其他事务的执行。SQL 标准定义了四个隔离级别,分别是读未提交(Read Uncommitt…

精美网站欣赏福州网站seo

K线实战分析系列之二十二:圆形顶部和圆形底部形态 一、圆形顶部形态二、圆形顶部和圆形底部形态的总结 一、圆形顶部形态 市场多空一方被逐渐击退,跳空的缺口是一方突然发力,体现出一方对市场掌握了控制权 二、圆形顶部和圆形底部形态的总结…

自动化测试用例结构分析

启动appium 获取包名和activity名 ASUS_I003DD:/ # monkey -p "io.appium.android.apis" -vvv 1 bash arg: -p bash arg: io.appium.android.apis bash arg: -vvv bash arg: 1args: [-p, io.appium.andr…

温州网站排名优化公司游戏 网站模板

目录 一、适合场景 二、开发过程说明 三、功能使用流程 四、代码 1、安装python依赖库 2、完整代码段 一、适合场景 无废话,CSV中有少量不合规数据需要手工处理可利用此方法,适合有点经验的程序员,可以不熟Python,思路还是要…

通过mcp-use client 调用mcp 服务方法

通过mcp-use client 调用mcp 服务方法mcp-use 提供了client,可以方便与mcp server 进行通信,是一个不错的方便测试的工具 参考代码app.pyimport asyncio from mcp_use import MCPClientasync def main():config = {&…

详细介绍:**Qwen3-Omni(多模态:文本/图像/音频/视频)**的安装与使用速通手册

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

建设银行网站适用浏览器和政网站建设

微信小程序自带tabbar&#xff0c;但无法实现中间按钮凸起样式和功能&#xff0c;因此按照设计重新自定义一个tabbar 1、创建tabbar文件&#xff0c;与pages同级创建一个文件夹&#xff0c;custom-tab-bar,里面按照设计图将底部tabbar样式编写 <view class"tab-bar&q…

扁平化风格网站模板自己公司产品网站的好处

文章目录 一.安装wsl二.下载docker desktop三.更换Docker镜像引用出处 一.安装wsl 在安装wsl之前&#xff0c;先在Windows中配置WSL环境,步骤很简单&#xff0c;按照以下文章进行 Windows10/11配置WSL(Ubuntu)环境 以管理员身份打开Windows PowerShell&#xff0c;执行以下命…

谷歌新款具身智能模型 Gemini Robotics 1.5 和 Gemini Robotics-ER 1.5

谷歌新款具身智能模型 Gemini Robotics 1.5 和 Gemini Robotics-ER 1.5 谷歌(Google)公司在 9 月 25 日推出了其最新一代的机器人具身智能模型 Gemini Robotics 1.5 和 Gemini Robotics-ER 1.5, 与之前推出的模型仅…

个人二级网站怎么做嵌入式软件开发岗位职责

页脚始终保持在页面底部的网页布局方法导语&#xff1a;用CSS创建一个高度自适应布局&#xff0c;如何保证页脚(footer)在内容不超过一屏的情况下始终保持在布局最下方是一个比较头疼的事。下面就由百分网小编为大家介绍一下页脚始终保持在页面底部的网页布局方法&#xff0c;希…

女装网站功能的建设郑州联通网站备案

QCon旧金山大会是由InfoQ举办的连续十年的最大的英语会议&#xff0c;它将在今年11月7-9日在旧金山湾区举行。\\在QCon大会涵盖了一系列深入的技术&#xff0c;架构师、资深开发者所关注的国际事件&#xff0c;聚焦创新领域和软件发展趋势&#xff0c;QCon大会每年在美国、中国…

网站多媒体加载卡顿?视频压缩 + 音频优化,加载速度提升 75% 的实操方法 - 实践

网站多媒体加载卡顿?视频压缩 + 音频优化,加载速度提升 75% 的实操方法 - 实践2025-09-27 09:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overfl…

全国做的最棒的网站域名的作用是什么

单例模式 指一个应用程序中&#xff0c;某个类的实例对象只有一个&#xff0c;你没有办法去new&#xff0c;因为构造器是被private修饰的&#xff0c;一般通过getInstance()的方法来获取它们的实例。 getInstance()的返回值是一个对象的引用&#xff0c;并不是一个新的实例&a…

完整教程:测试自动化教程:Parasoft如何流重定向与单元测试自动化

完整教程:测试自动化教程:Parasoft如何流重定向与单元测试自动化pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

用 Zig 实现英文数字验证码识别

一、背景介绍 验证码(CAPTCHA)是互联网应用中广泛使用的安全机制之一,主要用于区分真实用户与自动化程序。英文数字验证码识别可以通过 OCR 技术实现。本文将基于 Zig 语言 调用 Tesseract OCR,构建一个轻量级识别…

用 Crystal 实现英文数字验证码识别工具

一、项目简介 更多内容访问ttocr.com或联系1436423940 验证码识别是现代图像处理与 OCR(光学字符识别)技术的重要应用场景之一。本文将使用 Crystal 编程语言构建一个英文数字验证码识别工具,调用 Tesseract OCR 引…

实用指南:Java 面试 -Java基础

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于 Nim 的英文数字验证码识别工具实现

一、项目介绍 验证码识别是图像处理与字符识别的典型应用场景之一。本文将基于 Nim 编程语言实现一个简单的英文数字验证码识别工具,通过调用 Tesseract OCR 引擎,实现图像到字符的转换,探索 Nim 在图像处理场景下的…

怎么建立网站快捷方式企业融资渠道及技巧

https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app转载于:https://www.cnblogs.com/zhangchengyuan/p/5623348.html