導航:首頁 > 編程語言 > 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二維矩陣數據畫圖相關的資料

熱點內容
手印直播源碼 瀏覽: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
make命令一鍵編譯 瀏覽:608
如何在農行app查我的卡號 瀏覽:3