日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python遥感数据主成分分析

發布時間:2025/5/22 python 140 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python遥感数据主成分分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  原文:http://www.cnblogs.com/leonwen/p/5158947.html

?

  該算法由MatLab移植而來(具體參見上一篇博文)。但是最終輸出結果卻和MatLab不一致,經排查發現在進行調用兩者內部函數eig進行求解特征值和特征向量的時候,兩者特征值都一致,但是特征向量卻不同。

  可是,從理論上感覺也說得過去,因為特征向量本來就具有不唯一性。最讓人費解的是,就算兩者特征向量不一致,可為什么使用PCA的結果卻反差很大呢?感覺上來看,好像是Python的不準確性更大一點。

  代碼如下:

# -*- coding: utf-8 -*- """ Created on Tue Jan 12 21:45:57 2016
@author: LeonWen
"""import osfrom PIL import Image from numpy import * from pylab import *path = r'D:\Projects\PythonProj\ImageProcessing\2012' sst_dir = os.listdir(path) file_len = len(sst_dir)sst_list = []for i in range(file_len):str = path + '\\' + sst_dir[i]#txt = open(str).read() sst_list.append(str)immatrix = []for im in sst_list:text = loadtxt(im) immatrix.append(text)immatrix = array(immatrix)# 顯示輸出 figure() gray() for i in range(file_len):subplot(3,4,i + 1)pic = immatrix[i].reshape(180,360)pic = pic[::-1] # picshow = rot90(pic,4) imshow(pic)colorbar()show()# 轉換成樣本總體 X = immatrix.T # 獲取要本大小 m,n = X.shape[0:2]# 取得各個樣本均值 meanVal = mean(X,axis = 0) #tempMean = tile(meanVal,(64800,1))# 樣本矩陣去中心化 X = X - tile(meanVal,(64800,1))# 計算協方差 S = dot(X.T,X) / (m - 1)# 計算特征值eg和特征向量Ev eg,Ev = linalg.eig(S) #eg1,Ev1 = linalg.eigh(S) # 這兩種算法存在排序區別,eigh返回結果由小到大# 計算新的成分 Y = dot(immatrix.T,Ev)figure() gray() for i in range(n):subplot(3,4,i + 1)out = Y[:,i] outpic = out.reshape(180,360)outpic = outpic[::-1] imshow(outpic) colorbar()show()

  結果顯示:

?

原始數據顯示

PCA主成分分析結果輸出

  可能是我自己的原因吧,正在排查,哪位大神指導還望課指導鄙人一下~先就此謝過~O(∩_∩)O~

轉載于:https://www.cnblogs.com/leonwen/p/5158947.html

總結

以上是生活随笔為你收集整理的Python遥感数据主成分分析的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。