<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          盤點最重要的7個Python庫

          共 4579字,需瀏覽 10分鐘

           ·

          2021-06-14 14:08


          導讀:對于那些對Python數(shù)據(jù)生態(tài)系統(tǒng)不太熟悉的人士,我將簡要地介紹一部分重要的庫。


          作者:韋斯·麥金尼(Wes McKinney)

          譯者:徐敬一

          來源:大數(shù)據(jù)DT(ID:hzdashuju)






          01 NumPy


          http://numpy.org



          NumPy是Numerical Python的簡寫,是Python數(shù)值計算的基石。它提供多種數(shù)據(jù)結構、算法以及大部分涉及Python數(shù)值計算所需的接口。NumPy還包括其他內(nèi)容:


          • 快速、高效的多維數(shù)組對象ndarray

          • 基于元素的數(shù)組計算或數(shù)組間數(shù)學操作函數(shù)

          • 用于讀寫硬盤中基于數(shù)組的數(shù)據(jù)集的工具

          • 線性代數(shù)操作、傅里葉變換以及隨機數(shù)生成


          成熟的C語言API,允許Python拓展和本地的C或C++代碼訪問NumPy的數(shù)據(jù)結構和計算設施。


          除了NumPy賦予Python的快速數(shù)組處理能力之外,NumPy的另一個主要用途是在算法和庫之間作為數(shù)據(jù)傳遞的數(shù)據(jù)容器。對于數(shù)值數(shù)據(jù),NumPy數(shù)組能夠比Python內(nèi)建數(shù)據(jù)結構更為高效地存儲和操作數(shù)據(jù)。


          此外,用底層語言編寫的庫,例如用C或Fortran編寫的庫,可以在NumPy數(shù)組存儲的數(shù)據(jù)上直接操作,而無須將數(shù)據(jù)復制到其他內(nèi)存中后再操作。因此,許多Python的數(shù)值計算工具將NumPy數(shù)組作為基礎數(shù)據(jù)結構,或與NumPy進行無縫互操作。



          02 pandas


          http://pandas.pydata.org



          pandas提供了高級數(shù)據(jù)結構和函數(shù),這些數(shù)據(jù)結構和函數(shù)的設計使得利用結構化、表格化數(shù)據(jù)的工作快速、簡單、有表現(xiàn)力。它出現(xiàn)于2010年,幫助Python成為強大、高效的數(shù)據(jù)分析環(huán)境。常用的pandas對象是DataFrame,它是用于實現(xiàn)表格化、面向列、使用行列標簽的數(shù)據(jù)結構;以及Series,一種一維標簽數(shù)組對象。


          pandas將表格和關系型數(shù)據(jù)庫(例如SQL)的靈活數(shù)據(jù)操作能力與NumPy的高性能數(shù)組計算的理念相結合。它提供復雜的索引函數(shù),使得數(shù)據(jù)的重組、切塊、切片、聚合、子集選擇更為簡單。由于數(shù)據(jù)操作、預處理、清洗在數(shù)據(jù)分析中是重要的技能,pandas將是重要主題。


          介紹一點背景知識,早在2008年,我在一家量化投資企業(yè)——AQR資本管理公司供職時,便開始了pandas的開發(fā)。那時候,我有一些獨特的需求是工具清單上任何單個工具無法滿足的:


          • 帶有標簽軸,支持自動化或顯式數(shù)據(jù)對齊功能的數(shù)據(jù)結構——這可以防止未對齊數(shù)據(jù)和不同數(shù)據(jù)源的不同索引數(shù)據(jù)所引起的常見錯誤

          • 集成時間序列函數(shù)功能

          • 能夠同時處理時間序列數(shù)據(jù)和非時間序列數(shù)據(jù)的統(tǒng)一數(shù)據(jù)結構

          • 可以保存元數(shù)據(jù)的算術操作和簡化

          • 靈活處理缺失數(shù)據(jù)

          • 流行數(shù)據(jù)庫(例如基于SQL的數(shù)據(jù)庫)中的合并等關系型操作


          我想將以上的工作在同一個地方完成,最好還能在一個擁有通用軟件開發(fā)能力的語言中實現(xiàn)。Python就是一個很好的備選項,但是那時候并沒有這類數(shù)據(jù)結構的整合集,也沒有能提供相關功能的工具。結果就是pandas最初被開發(fā)出來用于解決金融和商業(yè)分析問題,pandas尤其擅長深度時間序列和處理商業(yè)進程中產(chǎn)生的時間索引數(shù)據(jù)。


          使用R語言進行統(tǒng)計計算的用戶對DataFrame的名稱會非常熟悉,因為這個對象是根據(jù)相似的R data.frame對象進行命名的。與Python不同的是,數(shù)據(jù)框在R語言中是標準庫中的內(nèi)容。因此,pandas中的很多特征通常與R核心的實現(xiàn)或者R的附加庫提供的功能一致。


          pandas的名字的來源是panel data,這是計量經(jīng)濟學中針對多維結構化數(shù)據(jù)集的術語。pandas也是Python data analysis(Python數(shù)據(jù)分析)自身的簡寫短語。



          03 matplotlib


          http://matplotlib.org



          matplotlib是最流行的用于制圖及其他二維數(shù)據(jù)可視化的Python庫。它由John D. Hunter創(chuàng)建,目前由一個大型開發(fā)者團隊維護。matplotlib被設計為適合出版的制圖工具。


          對于Python編程者來說也有其他可視化庫,但matplotlib依然使用最為廣泛,并且與生態(tài)系統(tǒng)的其他庫良好整合。我認為將它作為默認可視化工具是一個安全的選擇。


          關于matplotlib更詳細講解,請戳:純干貨:手把手教你用Python做數(shù)據(jù)可視化(附代碼)



          04 IPython與Jupyter


          http://ipython.org

          http://jupyter.org



          IPython項目開始于2001年,由Fernando Pérez發(fā)起,旨在開發(fā)一個更具交互性的Python解釋器。在過去的16年中,它成為Python數(shù)據(jù)技術棧中最重要的工具之一。


          盡管它本身并不提供任何計算或數(shù)據(jù)分析工具,它的設計側(cè)重于在交互計算和軟件開發(fā)兩方面將生產(chǎn)力最大化。它使用了一種執(zhí)行-探索工作流來替代其他語言中典型的編輯-編譯-運行工作流。它還提供針對操作系統(tǒng)命令行和文件系統(tǒng)的易用接口。由于數(shù)據(jù)分析編碼工作包含大量的探索、試驗、試錯和遍歷,IPython可以使你更快速地完成工作。


          2014年,F(xiàn)ernando和IPython團隊發(fā)布了Jupyter項目。Jupyter項目旨在設計一個適用于更多語言的交互式計算工具。IPython web notebook 則成為Jupyter notebook,可以支持超過40種編程語言。IPython系統(tǒng)目前可以作為一個內(nèi)核(一種編程語言模式)用于在 Jupyter 中使用Python。


          IPython自身已成為 Jupyter開源項目中的一個組件,后者提供交互性、探索性的高效環(huán)境。IPtyhon最古老、最簡單的“模式”就是一個加強版的Python命令行,用于提高編寫、測試、調(diào)試Python代碼的速度。


          你也可以通過基于Web、支持多語言的代碼“筆記本”——Jupyter Notebook來使用IPython系統(tǒng)。IPython命令行和 Jupyter notebook對于數(shù)據(jù)探索和可視化非常有用。


          Jupyter notebook系統(tǒng)允許你使用Markdown和HTML創(chuàng)建包含代碼和文本的富文檔。其他編程語言也針對Jupyter實現(xiàn)了內(nèi)核,允許你在Jupyter中使用多種語言而不僅僅是Python。


          對我個人來說,IPython涉及我工作的大部分內(nèi)容,包括運行、調(diào)試、測試代碼。



          05 SciPy


          http://scipy.org



          SciPy是科學計算領域針對不同標準問題域的包集合。以下是SciPy中包含的一些包:


          • scipy.integrate

            數(shù)值積分例程和微分方程求解器

          • scipy.linalg

            線性代數(shù)例程和基于numpy.linalg的矩陣分解

          • scipy.optimize

            函數(shù)優(yōu)化器(最小化器)和求根算法

          • scipy.signal

            信號處理工具

          • scipy.sparse

            稀疏矩陣與稀疏線性系統(tǒng)求解器

          • scipy.special

            SPECFUN的包裝器。SPECFUN是Fortran語言下實現(xiàn)通用數(shù)據(jù)函數(shù)的包,例如gamma函數(shù)。

          • scipy.stats

            標準的連續(xù)和離散概率分布(密度函數(shù)、采樣器、連續(xù)分布函數(shù))、各類統(tǒng)計測試、各類描述性統(tǒng)計。


          SciPy與NumPy一起為很多傳統(tǒng)科學計算應用提供了一個合理、完整、成熟的計算基礎。



          06 scikit-learn


          http://scikit-learn.org



          scikit-learn項目誕生于2010年,目前已成為Python編程者首選的機器學習工具包。僅僅七年,scikit-learn就擁有了全世界1 500位代碼貢獻者。其中包含以下子模塊。


          • 分類:SVM、最近鄰、隨機森林、邏輯回歸等

          • 回歸:Lasso、嶺回歸等

          • 聚類:k-means、譜聚類等

          • 降維:PCA、特征選擇、矩陣分解等

          • 模型選擇:網(wǎng)格搜索、交叉驗證、指標矩陣

          • 預處理:特征提取、正態(tài)化


          scikit-learn與pandas、statsmodels、IPython一起使Python成了高效的數(shù)據(jù)科學編程語言。



          07 statsmodels


          http://statsmodels.org



          statsmodels是一個統(tǒng)計分析包。它源自斯坦福大學統(tǒng)計學教授Jonathan Taylor 利用R語言實現(xiàn)的各類分析模型。Skipper Seabold 和 Josef Perktold早在2010年便創(chuàng)建了新的statsmodels項目。自那之后該項目迅速成長,擁有大量活躍用戶和貢獻者者。


          Nathaniel Smith 開發(fā)了Patsy項目,為R語言公式系統(tǒng)所驅(qū)動的statsmodels包提供公式、模型規(guī)范框架。


          與scikit-learn相比,statsmodels包含經(jīng)典的(高頻詞匯)統(tǒng)計學、經(jīng)濟學算法。它所包含的模型如下。


          • 回歸模型:線性回歸、通用線性模型、魯棒線性模型、線性混合效應模型等

          • 方差分析(ANOVA )

          • 時間序列分析:AR、ARMA、ARIMA、VAR等模型

          • 非參數(shù)方法:核密度估計、核回歸

          • 統(tǒng)計模型結果可視化


          statsmodels更專注于統(tǒng)計推理,提供不確定性評價和p值參數(shù)。相反,scikit-learn更專注于預測。


          關于作者:韋斯·麥金尼(Wes McKinney)是流行的Python開源數(shù)據(jù)分析庫pandas的創(chuàng)始人。他是一名活躍的演講者,也是Python數(shù)據(jù)社區(qū)和Apache軟件基金會的Python/C++開源開發(fā)者。目前他在紐約從事軟件架構師工作。


          本文摘編自利用Python進行數(shù)據(jù)分析》(原書第2版),經(jīng)出版方授權發(fā)布。

          延伸閱讀利用Python進行數(shù)據(jù)分析
          點擊上圖了解及購買
          轉(zhuǎn)載請聯(lián)系微信:DoctorData

          推薦語:Python數(shù)據(jù)分析經(jīng)典暢銷書全新升級,第1版中文版累計銷售100000冊。針對Python 3.6進行全面修訂和更新,涵蓋新版的pandas、NumPy、IPython和Jupyter。


          劃重點??


          干貨直達??



          更多精彩??

          在公眾號對話框輸入以下關鍵詞
          查看更多優(yōu)質(zhì)內(nèi)容!

          PPT | 讀書 | 書單 | 硬核 | 干貨 | 講明白 | 神操作
          大數(shù)據(jù) | 云計算 | 數(shù)據(jù)庫 | Python | 可視化
          AI | 人工智能 | 機器學習 | 深度學習 | NLP
          5G | 中臺 | 用戶畫像 1024 | 數(shù)學 | 算法 數(shù)字孿生

          據(jù)統(tǒng)計,99%的大咖都完成了這個神操作
          ??


          瀏覽 40
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  久久久久久99精品久久久 | www.日韩乱码 | 人妻懂色av粉嫩av浪潮av | 黄网在线免费看 | 人妻色色|