导航:首页 > 编程语言 > Python二维矩阵数据画图

Python二维矩阵数据画图

发布时间:2025-03-30 22:55:57

A. PCA(主成分分析)python实现

回顾了下PCA的步骤,并用python实现。深刻的发现当年学的特征值、特征向量好强大。

PCA是一种无监督的学习方式,是一种很常用的降维方法。在数据信息损失最小的情况下,将数据的特征数量由n,通过映射到另一个空间的方式,变为k(k<n)。

这里用一个2维的数据来说明PCA,选择2维的数据是因为2维的比较容易画图。
这是数据:

画个图看看分布情况:

协方差的定义为:

假设n为数据的特征数,那么协方差矩阵M, 为一个n n的矩阵,其中Mij为第i和第j个特征的协方差,对角线是各个特征的方差。
在我们的数据中,n=2,所以协方差矩阵是2
2的,
通过numpy我们可以很方便的得到:

得到cov的结果为:
array([[ 0.61655556, 0.61544444],
[ 0.61544444, 0.71655556]])

由于我们之前已经做过normalization,因此对于我们来说,
这个矩阵就是 data*data的转置矩阵。

得到结果:
matrix([[ 5.549, 5.539],
[ 5.539, 6.449]])

我们发现,其实协方差矩阵和散度矩阵关系密切,散度矩阵 就是协方差矩阵乘以(总数据量-1)。因此他们的 特征根 特征向量 是一样的。这里值得注意的一点就是,散度矩阵是 SVD奇异值分解 的一步,因此PCA和SVD是有很大联系的,他们的关系这里就不详细谈了,以后有机会再写下。

用numpy计算特征根和特征向量很简单,

但是他们代表的意义非常有意思,让我们将特征向量加到我们原来的图里:

其中红线就是特征向量。有几点值得注意:

蓝色的三角形就是经过坐标变换后得到的新点,其实他就是红色原点投影到红线、蓝线形成的。

得到特征值和特征向量之后,我们可以根据 特征值 的大小,从大到小的选择K个特征值对应的特征向量。
这个用python的实现也很简单:

从eig_pairs选取前k个特征向量就行。这里,我们只有两个特征向量,选一个最大的。

主要将原来的数据乘以经过筛选的特征向量组成的特征矩阵之后,就可以得到新的数据了。

output:

数据果然变成了一维的数据。
最后我们通过画图来理解下数据经过PCA到底发生了什么。

绿色的五角星是PCA处理过后得到的一维数据,为了能跟以前的图对比,将他们的高度定位1.2,其实就是红色圆点投影到蓝色线之后形成的点。这就是PCA,通过选择特征根向量,形成新的坐标系,然后数据投影到这个新的坐标系,在尽可能少的丢失信息的基础上实现降维。

通过上述几步的处理,我们简单的实现了PCA第一个2维数据的处理,但是原理就是这样,我们可以很轻易的就依此实现多维的。

用sklearn的PCA与我们的pca做个比较:

得到结果:

用我们的pca试试

得到结果:

完全一致,完美~
值得一提的是,sklearn中PCA的实现,用了部分SVD的结果,果然他们因缘匪浅。

B. Python 编程,绘图与矩阵,详细在图里,求代码,急用

import numpy as np

a=np.mat('-1,4,0;3,4,-4;-10,-12,5')

b=np.mat('-72;-4;-50')

c=np.linalg.solve(a,b)

print(c)

C. python热力图colorbar怎么画

本文将讲解如何在Python中绘制热力图并添加colorbar。热力图是一种可视化矩阵数据的图形,通过颜色深浅表示数据的大小。

在Python中,我们可以使用matplotlib库中的imshow函数来创建普通热图,但seaborn库则提供了更简洁的方法。seaborn的heatmap函数可以直观地生成热力图。

要绘制一个热力图,您首先需要准备一个二维数组,它将作为热力图的数据源。然后,调用seaborn的heatmap函数,传入数据源和相关参数,例如颜色映射(colormap)和colorbar位置。

颜色映射用于将数据值映射到颜色上,通常选择如'coolwarm'、'viridis'或'plasma'等预定义的颜色映射,以直观地表示数据的分布。colorbar是热力图中用来指示颜色映射与数据值对应关系的辅助工具,它通常位于热力图的底部或右侧。

绘制热力图并添加colorbar的过程非常直观,且能够为数据分析提供强大的支持。通过合理选择颜色映射和调整colorbar的位置,您可以使热力图更加美观和易于解读。

在绘制热力图时,我们还可以进一步自定义颜色映射的范围、透明度、标签等,以满足具体分析需求。总之,seaborn库为绘制热力图提供了一个简洁、灵活的解决方案,能够帮助我们更有效地探索和呈现数据间的关联。

阅读全文

与Python二维矩阵数据画图相关的资料

热点内容
地基上柱子筋加密 浏览:649
邮件加密服务器 浏览:734
手印直播源码 浏览:933
php网站后台密码忘记了 浏览:807
编译器可以分成几个阶段 浏览:259
linux查看文件类型命令 浏览:336
美团开发是编程的吗 浏览:516
福永八方汇编程 浏览:384
源码积分随机什么意思 浏览:145
reddit排名算法 浏览:46
vba网络编程 浏览:850
androidsdk官方下载 浏览:129
安卓手机浮标怎么调出来 浏览:83
重庆时钟同步服务器云空间 浏览:905
wechatforandroid 浏览:371
编译原理社蒋宗礼 浏览:653
台湾永久域名加密 浏览:362
python怎么将整数中的数字反转 浏览:368
挨踢的程序员 浏览:502
应用加密保密问题怎么更改 浏览:734