隨著近幾年大數(shù)據(jù)越來(lái)越火,Python的熱度也跟著蹭蹭上漲,Python能在數(shù)據(jù)科學(xué)領(lǐng)域獨(dú)占鰲頭,離不開(kāi)一些強(qiáng)大的庫(kù)的支持,下面小編搜集了幾個(gè)最實(shí)用的Python庫(kù)。如果你正在學(xué)習(xí)Python,也許這篇文章能幫助你快速上手?jǐn)?shù)據(jù)分析。
相信大多數(shù) Python 的初學(xué)者們都曾為環(huán)境問(wèn)題而頭疼不已,但你并不孤獨(dú),大家都是這么折騰過(guò)來(lái)的,打算學(xué)習(xí) Python 來(lái)做數(shù)據(jù)分析的你,是不是在開(kāi)始時(shí)就遇到各種麻煩呢??jī)H僅是安裝數(shù)據(jù)計(jì)算庫(kù)估計(jì)就耗盡了所有的熱情。
這里推薦使用 Anaconda 來(lái)管理你的安裝環(huán)境和各種工具包。
Anaconda是數(shù)據(jù)分析的Python發(fā)行版本,集成了幾百個(gè)專(zhuān)門(mén)做數(shù)據(jù)分析的庫(kù),像numpy,pandas,matplotlib,scikit-learn等常用的庫(kù)都有集成,而且還提供跨平臺(tái)的安裝包,實(shí)在是做數(shù)據(jù)分析不二的選擇
它是一個(gè)增強(qiáng)的Python shell,目的是提高編寫(xiě),測(cè)試,調(diào)試Python代碼的速度,
支持變量自動(dòng)補(bǔ)全,自動(dòng)縮進(jìn),支持bash shell命令,內(nèi)置了許多很有用的功能和函數(shù)。學(xué)習(xí)ipython將會(huì)讓我們以一種更高的效率來(lái)使用Python。同時(shí)它也是利用Python進(jìn)行科學(xué)計(jì)算和交互可視化的一個(gè)最佳的平臺(tái)。
IPython提供了兩個(gè)主要的組件:
Spyder是anaconda自帶的集成開(kāi)發(fā)環(huán)境,專(zhuān)門(mén)針對(duì)數(shù)據(jù)處理而優(yōu)化,集成了ipython控制臺(tái),可以方便查看數(shù)據(jù)處理結(jié)果及數(shù)據(jù)可視化
數(shù)據(jù)科學(xué)的核心庫(kù),是其他高級(jí)數(shù)據(jù)分析庫(kù)的基礎(chǔ)和依賴(lài),Numpy不提供高級(jí)數(shù)據(jù)分析功能,可以更加深刻的理解Numpy數(shù)組和面向數(shù)組的計(jì)算。
umpy提供了兩種基本的對(duì)象:ndarray和ufunc。
ndarray是存儲(chǔ)單一數(shù)據(jù)類(lèi)型的多維數(shù)組,而ufunc是能夠?qū)?shù)組進(jìn)行處理的函數(shù)。
Numpy的功能:
N維數(shù)組,一種快速、高效使用內(nèi)存的多維數(shù)組,他提供矢量化數(shù)學(xué)運(yùn)算。
可以不需要使用循環(huán),就能對(duì)整個(gè)數(shù)組內(nèi)的數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)數(shù)學(xué)運(yùn)算。
非常便于傳送數(shù)據(jù)到用低級(jí)語(yǔ)言編寫(xiě)(CC++)的外部庫(kù),也便于外部庫(kù)以Numpy數(shù)組形式返回?cái)?shù)據(jù)。
Scipy是一款方便、易于使用、專(zhuān)門(mén)為科學(xué)和工程設(shè)計(jì)的Python包,它包括統(tǒng)計(jì)、優(yōu)化、整合、線性代數(shù)模塊、傅里葉變換、信號(hào)和圖像處理、常微分方程求解器等。Scipy依賴(lài)于Numpy,并提供許多對(duì)用戶友好的和有效的數(shù)值例程,如數(shù)值積分和優(yōu)化。
Pandas是Python的一個(gè)數(shù)據(jù)分析包,Pandas最初被用作金融數(shù)據(jù)分析工具而開(kāi)發(fā)出來(lái),因此Pandas為時(shí)間序列分析提供了很好的支持。
Pandas是為了解決數(shù)據(jù)分析任務(wù)而創(chuàng)建的,Pandas納入了大量的庫(kù)和一些標(biāo)準(zhǔn)的數(shù)據(jù)模型,提供了高效的操作大型數(shù)據(jù)集所需要的工具。Pandas包含了高級(jí)數(shù)據(jù)結(jié)構(gòu),以及讓數(shù)據(jù)分析變得快速、簡(jiǎn)單的工具,提供了大量快速便捷的處理數(shù)據(jù)的函數(shù)和方法。它建立在Numpy之上,使得Numpy應(yīng)用變得簡(jiǎn)單。
Pandas在數(shù)據(jù)探索,數(shù)據(jù)清洗方面表現(xiàn)的更加出色,可以很容易的處理缺失值,異常值,篩選或合并數(shù)據(jù)集
Pandas是進(jìn)行數(shù)據(jù)清洗、整理的最好工具。
Matplotlib是基于Numpy的Python的一個(gè)可視化模塊,提供了方便的數(shù)據(jù)繪圖工具,能方便的做線條圖、餅圖、柱狀圖以及其他專(zhuān)業(yè)圖形。
Matplotlib有一套允許定制各種屬性的默認(rèn)設(shè)置,可以控制Matplotlib中的每一個(gè)默認(rèn)屬性:圖像大小、每英寸點(diǎn)數(shù)、線寬、色彩和樣式、子圖、坐標(biāo)軸、網(wǎng)個(gè)屬性、文字和文字屬性。
Scikit-Learn是基于Python機(jī)器學(xué)習(xí)的模塊,基于BSD開(kāi)源許可證,安裝需要Numpy Scopy Matplotlib等模塊,
scikit-learn為常見(jiàn)的機(jī)器學(xué)習(xí)算法提供了一個(gè)簡(jiǎn)潔而一致的界面,通過(guò)一個(gè)統(tǒng)一的接口來(lái)使用,使得將ML帶入生產(chǎn)系統(tǒng)變得簡(jiǎn)單。 該庫(kù)結(jié)合了高質(zhì)量的代碼和良好的文檔,易用性和高性能,是事實(shí)上用Python進(jìn)行機(jī)器學(xué)習(xí)的行業(yè)標(biāo)準(zhǔn)。Scikit-Learn的主要功能分為六個(gè)部分,分類(lèi)、回歸、聚類(lèi)、數(shù)據(jù)降維、模型選擇、數(shù)據(jù)預(yù)處理。
Scikit-Learn自帶一些經(jīng)典的數(shù)據(jù)集,比如用于分類(lèi)的iris和digits數(shù)據(jù)集,還有用于回歸分析的boston house prices數(shù)據(jù)集。該數(shù)據(jù)集是一種字典結(jié)構(gòu),數(shù)據(jù)存儲(chǔ)在data成員中,輸出標(biāo)簽存儲(chǔ)在target成員中。
Scikit-Learn還有一些庫(kù),比如:用于自然語(yǔ)言處理的Nltk、用于網(wǎng)站數(shù)據(jù)抓取的Scrappy、用于網(wǎng)絡(luò)挖掘的Pattern、用于深度學(xué)習(xí)的Theano等。,
jieba 是一個(gè)Python實(shí)現(xiàn)的分詞庫(kù),對(duì)中文有著很強(qiáng)大的分詞能力,在文本分析中的文本分類(lèi),情感分析等方面表現(xiàn)優(yōu)異
1 支持三種分詞模式:a. 精確模式,試圖將句子最精確地切開(kāi),適合文本分析;b. 全模式,把句子中所有的可以成詞的詞語(yǔ)都掃描出來(lái), 速度非常快,但是不能解決歧義;c. 搜索引擎模式,在精確模式的基礎(chǔ)上,對(duì)長(zhǎng)詞再次切分,提高召回率,適合用于搜索引擎分詞。
2 支持自定義詞典
juba是一個(gè)Python類(lèi)庫(kù),用于處理中文文本,實(shí)現(xiàn)文檔詞匯矩陣、詞匯文檔矩陣、文檔相似、詞匯關(guān)聯(lián)分析、自動(dòng)文檔生成等基礎(chǔ)功能,Python第三方庫(kù)jieba(結(jié)巴)的定位和功能不同,jieba主要用于中文分詞、詞性標(biāo)注、關(guān)鍵詞提取等,是中文文本處理的最基礎(chǔ)部分。juba是在中文文本數(shù)據(jù)預(yù)處理后(中文分詞、去掉停用詞等)對(duì)中文文本(文檔或詞匯)進(jìn)行向量化,是情感分析、文本聚類(lèi)、文本分類(lèi)、信息檢索的基礎(chǔ)。因此應(yīng)該將jieba和juba結(jié)合起來(lái)使用,即先用jieba進(jìn)行文本預(yù)處理,然后利用juba進(jìn)行文本向量化,是高級(jí)應(yīng)用的基礎(chǔ)。
Tensorflow是目前最火的深度學(xué)習(xí)框架,廣泛應(yīng)用于自然語(yǔ)言處理、語(yǔ)音識(shí)別、圖像處理等多個(gè)領(lǐng)域。Tensorflow采用數(shù)據(jù)流圖(data flow graphs),用于數(shù)值計(jì)算的開(kāi)源軟件庫(kù)。節(jié)點(diǎn)(Nodes)在圖中表示數(shù)學(xué)操作,圖中的線(edges)則表示在節(jié)點(diǎn)間相互聯(lián)系的多維數(shù)據(jù)數(shù)組,即張量(tensor)。它靈活的架構(gòu)讓你可以在多種平臺(tái)上展開(kāi)計(jì)算,是由谷歌開(kāi)源的機(jī)器學(xué)習(xí)系統(tǒng)。Tensorflow支持Python、C++、java、GO等多種編程語(yǔ)言,以及CNN、RNN和GAN等深度學(xué)習(xí)算法。Tensorflow除可以在Windows、Linux、MacOS等操作系統(tǒng)運(yùn)行外,還支持Android和iOS移動(dòng)平臺(tái)的運(yùn)行、以及適用于多個(gè)CPU/GPU組成的分布式系統(tǒng)中。
相較于其它的深度學(xué)習(xí)框架,如:Caffe、Torch、Keras、MXnet、Theano等,Tensorflow的主要優(yōu)勢(shì)有以下幾點(diǎn):高度的靈活性、支持Python語(yǔ)言開(kāi)發(fā)、可視化效果好、功能更加強(qiáng)大、運(yùn)行效率高、強(qiáng)大的社區(qū)。
當(dāng)然TensorFlow也有一些缺點(diǎn):
Keras是一個(gè)高層神經(jīng)網(wǎng)絡(luò)庫(kù),Keras由純Python編寫(xiě)而成并基Tensorflow或Theano
Keras很靈活,且比較容易學(xué)。可以把keras看作為tensorflow封裝后的一個(gè)API,適合快速體驗(yàn) ,但若想學(xué)扎實(shí)一點(diǎn)則用 Tensorlayer 或者直接使用 TensorFlow 和 Theano。
Python有著像Matlab一樣強(qiáng)大的數(shù)值計(jì)算工具包Numpy;有著繪圖工具包Matplotlib;有著科學(xué)計(jì)算工具包Scipy。Python能直接處理數(shù)據(jù),而Pandas幾乎可以像SQL那樣對(duì)數(shù)據(jù)進(jìn)行控制。Matplotlib能夠?qū)?shù)據(jù)和記過(guò)進(jìn)行可視化,快速理解數(shù)據(jù)。Scikit-Learn提供了機(jī)器學(xué)習(xí)算法的支持,Tensorflow、Keras提供了深度學(xué)習(xí)框架。
聯(lián)系客服