新聞中心
python常用到哪些庫(kù)
第一、NumPy
目前成都創(chuàng)新互聯(lián)公司已為1000多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機(jī)、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、泰寧網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶(hù)導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶(hù)和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
NumPy是NumericalPython的簡(jiǎn)寫(xiě),是Python數(shù)值計(jì)算的基石。它提供多種數(shù)據(jù)結(jié)構(gòu)、算法以及大部分涉及Python數(shù)值計(jì)算所需的接口。NumPy還包括其他內(nèi)容:
①快速、高效的多維數(shù)組對(duì)象ndarray
②基于元素的數(shù)組計(jì)算或數(shù)組間數(shù)學(xué)操作函數(shù)
③用于讀寫(xiě)硬盤(pán)中基于數(shù)組的數(shù)據(jù)集的工具
④線性代數(shù)操作、傅里葉變換以及隨機(jī)數(shù)生成
除了NumPy賦予Python的快速數(shù)組處理能力之外,NumPy的另一個(gè)主要用途是在算法和庫(kù)之間作為數(shù)據(jù)傳遞的數(shù)據(jù)容器。對(duì)于數(shù)值數(shù)據(jù),NumPy數(shù)組能夠比Python內(nèi)建數(shù)據(jù)結(jié)構(gòu)更為高效地存儲(chǔ)和操作數(shù)據(jù)。
第二、pandas
pandas提供了高級(jí)數(shù)據(jù)結(jié)構(gòu)和函數(shù),這些數(shù)據(jù)結(jié)構(gòu)和函數(shù)的設(shè)計(jì)使得利用結(jié)構(gòu)化、表格化數(shù)據(jù)的工作快速、簡(jiǎn)單、有表現(xiàn)力。它出現(xiàn)于2010年,幫助Python成為強(qiáng)大、高效的數(shù)據(jù)分析環(huán)境。常用的pandas對(duì)象是DataFrame,它是用于實(shí)現(xiàn)表格化、面向列、使用行列標(biāo)簽的數(shù)據(jù)結(jié)構(gòu);以及Series,一種一維標(biāo)簽數(shù)組對(duì)象。
pandas將表格和關(guān)系型數(shù)據(jù)庫(kù)的靈活數(shù)據(jù)操作能力與Numpy的高性能數(shù)組計(jì)算的理念相結(jié)合。它提供復(fù)雜的索引函數(shù),使得數(shù)據(jù)的重組、切塊、切片、聚合、子集選擇更為簡(jiǎn)單。由于數(shù)據(jù)操作、預(yù)處理、清洗在數(shù)據(jù)分析中是重要的技能,pandas將是重要主題。
第三、matplotlib
matplotlib是最流行的用于制圖及其他二維數(shù)據(jù)可視化的Python庫(kù),它由John D.
Hunter創(chuàng)建,目前由一個(gè)大型開(kāi)發(fā)者團(tuán)隊(duì)維護(hù)。matplotlib被設(shè)計(jì)為適合出版的制圖工具。
對(duì)于Python編程者來(lái)說(shuō)也有其他可視化庫(kù),但matplotlib依然使用最為廣泛,并且與生態(tài)系統(tǒng)的其他庫(kù)良好整合。
第四、IPython
IPython項(xiàng)目開(kāi)始于2001年,由FernandoPérez發(fā)起,旨在開(kāi)發(fā)一個(gè)更具交互性的Python解釋器。在過(guò)去的16年中,它成為Python數(shù)據(jù)技術(shù)棧中最重要的工具之一。
盡管它本身并不提供任何計(jì)算或數(shù)據(jù)分析工具,它的設(shè)計(jì)側(cè)重于在交互計(jì)算和軟件開(kāi)發(fā)兩方面將生產(chǎn)力最大化。它使用了一種執(zhí)行-探索工作流來(lái)替代其他語(yǔ)言中典型的編輯-編譯-運(yùn)行工作流。它還提供了針對(duì)操作系統(tǒng)命令行和文件系統(tǒng)的易用接口。由于數(shù)據(jù)分析編碼工作包含大量的探索、試驗(yàn)、試錯(cuò)和遍歷,IPython可以使你更快速地完成工作。
第五、SciPy
SciPy是科學(xué)計(jì)算領(lǐng)域針對(duì)不同標(biāo)準(zhǔn)問(wèn)題域的包集合。以下是SciPy中包含的一些包:
①scipy.integrate數(shù)值積分例程和微分方程求解器
②scipy.linalg線性代數(shù)例程和基于numpy.linalg的矩陣分解
③scipy.optimize函數(shù)優(yōu)化器和求根算法
④scipy.signal信號(hào)處理工具
⑤scipy.sparse稀疏矩陣與稀疏線性系統(tǒng)求解器
SciPy與Numpy一起為很多傳統(tǒng)科學(xué)計(jì)算應(yīng)用提供了一個(gè)合理、完整、成熟的計(jì)算基礎(chǔ)。
第六、scikit-learn
scikit-learn項(xiàng)目誕生于2010年,目前已成為Python編程者首選的機(jī)器學(xué)習(xí)工具包。僅僅七年,scikit-learn就擁有了全世界1500位代碼貢獻(xiàn)者。其中包含以下子模塊:
①分類(lèi):SVM、最近鄰、隨機(jī)森林、邏輯回歸等
②回歸:Lasso、嶺回歸等
③聚類(lèi):K-means、譜聚類(lèi)等
④降維:PCA、特征選擇、矩陣分解等
⑤模型選擇:網(wǎng)格搜索、交叉驗(yàn)證、指標(biāo)矩陣
⑥預(yù)處理:特征提取、正態(tài)化
scikit-learn與pandas、statsmodels、IPython一起使Python成為高效的數(shù)據(jù)科學(xué)編程語(yǔ)言。
Python的函數(shù)都有哪些
【常見(jiàn)的內(nèi)置函數(shù)】
1、enumerate(iterable,start=0)
是python的內(nèi)置函數(shù),是枚舉、列舉的意思,對(duì)于一個(gè)可迭代的(iterable)/可遍歷的對(duì)象(如列表、字符串),enumerate將其組成一個(gè)索引序列,利用它可以同時(shí)獲得索引和值。
2、zip(*iterables,strict=False)
用于將可迭代的對(duì)象作為參數(shù),將對(duì)象中對(duì)應(yīng)的元素打包成一個(gè)個(gè)元組,然后返回由這些元組組成的列表。如果各個(gè)迭代器的元素個(gè)數(shù)不一致,則返回列表長(zhǎng)度與最短的對(duì)象相同,利用*號(hào)操作符,可以將元組解壓為列表。
3、filter(function,iterable)
filter是將一個(gè)序列進(jìn)行過(guò)濾,返回迭代器的對(duì)象,去除不滿(mǎn)足條件的序列。
4、isinstance(object,classinfo)
是用來(lái)判斷某一個(gè)變量或者是對(duì)象是不是屬于某種類(lèi)型的一個(gè)函數(shù),如果參數(shù)object是classinfo的實(shí)例,或者object是classinfo類(lèi)的子類(lèi)的一個(gè)實(shí)例,
返回True。如果object不是一個(gè)給定類(lèi)型的的對(duì)象, 則返回結(jié)果總是False
5、eval(expression[,globals[,locals]])
用來(lái)將字符串str當(dāng)成有效的表達(dá)式來(lái)求值并返回計(jì)算結(jié)果,表達(dá)式解析參數(shù)expression并作為Python表達(dá)式進(jìn)行求值(從技術(shù)上說(shuō)是一個(gè)條件列表),采用globals和locals字典作為全局和局部命名空間。
【常用的句式】
1、format字符串格式化
format把字符串當(dāng)成一個(gè)模板,通過(guò)傳入的參數(shù)進(jìn)行格式化,非常實(shí)用且強(qiáng)大。
2、連接字符串
常使用+連接兩個(gè)字符串。
3、if...else條件語(yǔ)句
Python條件語(yǔ)句是通過(guò)一條或多條語(yǔ)句的執(zhí)行結(jié)果(True或者False)來(lái)決定執(zhí)行的代碼塊。其中if...else語(yǔ)句用來(lái)執(zhí)行需要判斷的情形。
4、for...in、while循環(huán)語(yǔ)句
循環(huán)語(yǔ)句就是遍歷一個(gè)序列,循環(huán)去執(zhí)行某個(gè)操作,Python中的循環(huán)語(yǔ)句有for和while。
5、import導(dǎo)入其他腳本的功能
有時(shí)需要使用另一個(gè)python文件中的腳本,這其實(shí)很簡(jiǎn)單,就像使用import關(guān)鍵字導(dǎo)入任何模塊一樣。
如何用python實(shí)現(xiàn)pca降維
首先2個(gè)包:
import?numpy?as?np
from?sklearn.decomposition?import?PCA
然后一個(gè)m x n 的矩陣,n為維度,這里設(shè)為x。
n_components = 12 是自己可以設(shè)的。
pca?=?PCA(n_components=12)
pca.fit(x)
PCA(copy=True,?iterated_power='auto',?n_components=12,?random_state=None,
svd_solver='auto',?tol=0.0,?whiten=False)
float_formatter?=?lambda?x:?"%.2f"?%?x
np.set_printoptions(formatter={'float_kind':float_formatter})
print?'explained?variance?ratio:'
print?pca.explained_variance_ratio_
print?'cumulative?sum:'
print?pca.explained_variance_ratio_.cumsum()
Python LDA降維中不能輸出指定維度(n_components)的新數(shù)據(jù)集
LDA降維后的維度區(qū)間在[1,C-1],C為特征空間的維度,與原始特征數(shù)n無(wú)關(guān),對(duì)于二值分類(lèi),最多投影到1維,所以我估計(jì)你是因?yàn)檫@是個(gè)二分類(lèi)問(wèn)題,所以只能降到一維。
python 數(shù)據(jù)降維程序請(qǐng)教
def dict_f(f): d={} for line in f: l = line.strip("\n").split(" ") d[l[0]] = l[1:] return ddef result(d_c,d_a,cookn): app,game,shoot,apply,function,iq=0,0,0,0,0,0 app = len(d_c[cookn]) for i in d_c[cookn]: for ii in d_a[i]: if (ii=="game"): game= game+1 elif(ii=="shoot"): shoot = shoot +1 elif(ii=="apply"): apply = apply +1 elif(ii=="function"): function = function +1 elif(ii=="iq"): iq = iq +1 else: pass return (app,game,shoot,apply,function,iq) f = open("cookie.txt","r+") #行首沒(méi)有空格,每個(gè)單詞之間有且僅有一個(gè)空格d_c = dict_f(f) f1 = open("app.txt","r+")#行首沒(méi)有空格,每個(gè)單詞之間有且僅有一個(gè)空格d_a = dict_f(f1)l_c = d_c.keys()l=[i for i in sorted(l_c) if(i!="") ]for i in l: print i+" "+"app=%d game=%d shoot=%d apply=%d function=%d iq=%d"%result(d_c,d_a,i)#print 可以改寫(xiě)輸入到文件中
名稱(chēng)欄目:python中降維函數(shù),python數(shù)據(jù)降維
分享鏈接:http://www.dlmjj.cn/article/hohcoc.html