Python数据分析:求矩阵的秩。啥是矩阵秩?听故事学线代并用Python实现,娘来太容易学会了!
这篇文档主要包含以下内容:1. 通过Python代码示例讲解矩阵秩的概念,展示如何用numpy计算矩阵秩和求解线性方程组;2. 提供联系方式并邀请纠错;3. 附带两个推广链接(免费爬虫工具和论文写作/Python学习智能体);4. 详细介绍了Markdown编辑器的使用技巧,包括快捷键、标题生成、文本样式、图片插入、代码高亮、列表和表格创建等功能。文档采用Markdown格式编写,内容涵盖技术教程
1 代码示例
直接上代码。
"""
先说什么是矩阵的秩。
想象一下,你是一个班长,要统计班里的同学喜欢“读书/打球/画画”的程度,得到了3条记录如下:
读书 打球 画画
同学A 1 2 3
同学B 2 4 6
同学C 3 6 9
这个表就可以看作一个“矩阵”。
现在,你仔细看看这三行数据,有没有发现什么规律?
同学B的每项数据,正好是同学A的2倍。
同学C的每项数据,正好是同学A的3倍。
也就是说,同学B和同学C的数据并没有提供任何新的、独立的信息,它们只是重复和放大了同学A的信息。
真正有价值的、不重复的原始信息,其实只有同学A的那一条。
所以,这个表格(矩阵)的“秩”就是1。
总结一下:
秩就是一组数据中,真正独立的、不重复的信息有多少条。
秩最大不会超过表格的行数或列数中最小的那个。
如果秩比较小,说明数据中存在很多重复或冗余的信息。
如果秩达到最大,说明每一条信息都是独一无二的,没有冗余。
所以,矩阵的秩的核心就是衡量信息的“独立量”。
矩阵的秩作为线性代数中的一个核心概念,它帮助我们衡量信息中的“独立性”和“冗余度”。无论是在压缩数据、提取关键特征、分析系统关系,还是判断方程解的情况方面,它都提供了一个强大的工具。理解了秩,就能更好地理解和处理这些实际问题中蕴含的数学结构。
在线性代数中,通过各种变换可以手工计算矩阵的秩。
但人生苦短,我们还是用Python吧。
"""
import numpy as np
A = np.array([[3, 1, 0], [-1, 2, 1], [3, 4, 2]])
print(A)
"""
[[ 3 1 0]
[-1 2 1]
[ 3 4 2]]
"""
b = np.array([0, 2, 3])
B = np.array([[3, 1, 0, 0], [-1, 2, 1, 2], [3, 4, 2, 3]])
print(B)
"""
[[ 3 1 0 0]
[-1 2 1 2]
[ 3 4 2 3]]
"""
print("A的秩为{}".format(np.linalg.matrix_rank(A)))
print("B的秩为{}".format(np.linalg.matrix_rank(B)))
"""
A的秩为3
B的秩为3
"""
"""
我们试试求解线性方程组:Ax=b。
求解方程x = np.linalg.solve(A, b)。
"""
x = np.linalg.solve(A, b)
print(x)
"""
[-0.2 0.6 0.6]
"""
"""
所谓线性方程组,我们用通俗易懂的写法再写一遍,就是:
3x1+x2+0x3=0(1)
−x1+2x2+x3=2(2)
3x1+4x2+2x3=3(3)
该三元一次方程组的解为:
x1=-0.2; x2=0.6; x3=0.6
"""
"""
np.linalg.solve使用数值方法(如LU分解)来求解线性方程组,适用于系数矩阵A可逆(非奇异)的情况。
如果矩阵A是奇异的(不可逆),或者方程组是超定的(方程数多于未知数)或欠定的(方程数少于未知数),np.linalg.solve可能会报错。
对于后两种情况,可以考虑使用np.linalg.lstsq求最小二乘解。
"""
2 欢迎纠错
欢迎纠错,随时更新。
联系方式:评论、私信,或 企鹅 :179 0042 182 。
码字不易,如觉得还可以,请给个免费的 zan 和 soucang ,让我有动力继续写下去。
3 免费爬虫
https://affiliate
.bazhuayu
.com
/M8lKUC
4 论文写作/Python 学习智能体
https://chatglm.cn/share/WF2C5ree
-
- 以下关于 Markdown 编辑器
你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。
++ 新的改变
我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
- 全新的界面设计 ,将会带来全新的写作体验;
- 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
- 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
- 全新的 KaTeX数学公式 语法;
- 增加了支持甘特图的mermaid语法1 功能;
- 增加了 多屏幕编辑 Markdown文章功能;
- 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
- 增加了 检查列表 功能。
++ 功能快捷键
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Ctrl/Command + F
替换:Ctrl/Command + G
++ 合理的创建标题,有助于目录的生成
直接输入1次+,并按下space后,将生成1级标题。
输入2次+,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。
++ 如何改变文本的样式
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
++ 插入链接与图片
链接: link.
图片:
带尺寸的图片:
居中的图片:
居中并且带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
++ 如何插入一段漂亮的代码片
去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
// An highlighted block
var foo = 'bar';
++ 生成一个适合你的列表
- 项目
- 项目
- 项目
- 项目
- 项目1
- 项目2
- 项目3
- 计划任务
- 完成任务
++ 创建一个表格
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
+++ 设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
+++ SmartyPants
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' |
‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" |
“Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash |
– is en-dash, — is em-dash |
++ 创建一个自定义列表
Markdown
: Text-to-HTML conversion tool
-
Authors
- John
- Luke
++ 如何创建一个注脚
一个具有注脚的文本。2
++ 注释也是必不可少的
Markdown将文本转换为 HTML。
++ KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式here.
++ 新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 这儿,
++ UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:
这将产生一个流程图。:
- 关于 Mermaid 语法,参考 这儿,
++ FLowchart流程图
我们依旧会支持flowchart的流程图:
- 关于 Flowchart流程图 语法,参考 这儿.
++ 导出与导入
+++ 导出
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
+++ 导入
如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。
-
注脚的解释 ↩︎
更多推荐
所有评论(0)