盤點數據科學流行的29個Python庫
本文轉載自微信公眾號「大數據DT」,作者保羅·戴特爾。轉載本文請聯系大數據DT公眾號。
我們都著眼于如何使用現有的庫來避免重復工作,從而使程序開發工作事半功倍。通常,開發大量原始代碼是一個費時費力的工作,為了避免這種情況,我們會盡可能多地使用庫中已有的類來創建對象,通常僅需要一行代碼。因此,庫能夠幫助我們使用適量的代碼執行重要的任務。
本文介紹數據科學中會經常使用多種Python標準庫、數據科學庫和第三方庫。
01 Python標準庫
16 / 29
Python標準庫提供了豐富的功能,包括文本/二進制數據處理、數學運算、函數式編程、文件/目錄訪問、數據持久化、數據壓縮/歸檔、加密、操作系統服務、并發編程、進程間通信、網絡協議、JSON / XML /其他Internet數據格式、多媒體、國際化、GUI、調試、分析等。下面列出了一部分Python標準庫模塊。
- collections:建立在列表、元組、字典和集合基礎上的加強版數據結構。
- csv:處理用逗號分隔值的文件。
- datetime, time:日期和時間操作。
- decimal:定點或浮點運算,包括貨幣計算。
- doctest:通過驗證測試或嵌入在docstring中的預期結果進行簡單的單元測試。
- json:處理用于Web服務和NoSQL文檔數據庫的JSON(JavaScript Object Notation)數據。
- math:常見的數學常量和運算。
- os:與操作系統進行交互。
- queue:一種先進先出的數據結構。
- random:偽隨機數操作。
- re:用于模式匹配的正則表達式。
- sqlite3:SQLite關系數據庫訪問。
- statistics:數理統計函數,如均值、中值、眾數和方差等。
- string:字符串操作。
- sys:—命令行參數處理,如標準輸入流、輸出流和錯誤流。
- timeit:性能分析。
Python擁有一個龐大且仍在快速增長的開源社區,社區中的開發者來自許多不同的領域。該社區中有大量的開源庫是Python受歡迎的最重要的原因之一。
許多任務只需要幾行Python代碼就可以完成,這會令人感到很神奇。下面列出了一些流行的數據科學庫。
02 科學計算與統計
3 / 29
- NumPy(Numerical Python):Python沒有內置的數組數據結構。它提供的列表類型雖然使用起來更方便,但是處理速度較慢。NumPy提供了高性能的ndarray數據結構來表示列表和矩陣,同時還提供了處理這些數據結構的操作。詳細教程請戳??高能!8段代碼演示Numpy數據運算的神操作
- SciPy(Scientific Python):SciPy基于NumPy開發,增加了用于科學處理的程序,例如積分、微分方程、額外的矩陣處理等。scipy.org負責管理SciPy和NumPy。詳細教程請戳??3段極簡代碼帶你入門Python科學計算庫SciPy
- StatsModels:為統計模型評估、統計測試和統計數據研究提供支持。
03 數據處理與分析
1 / 29
pandas:一個非常流行的數據處理庫。pandas充分利用了NumPy的ndarray類型,它的兩個關鍵數據結構是Series(一維)和DataFrame(二維)。詳細教程請戳??Pandas最詳細教程來了!
04 可視化
2 / 29
- Matplotlib:可高度定制的可視化和繪圖庫。Matplotlib可以繪制正規圖、散點圖、柱狀圖、等高線圖、餅圖、矢量場圖、網格圖、極坐標圖、3D圖以及添加文字說明等。詳細教程請戳??Python實操:手把手教你用Matplotlib把數據畫出來
- Seaborn:基于Matplotlib構建的更高級別的可視化庫。與Matplotlib相比,Seaborn改進了外觀,增加了可視化的方法,并且可以使用更少的代碼創建可視化。
05 機器學習、深度學習和強化學習
4 / 29
- scikit-learn:一個頂級的機器學習庫。機器學習是AI的一個子集,深度學習則是機器學習的一個子集,專注于神經網絡。
- Keras:最易于使用的深度學習庫之一。Keras運行在TensorFlow(谷歌)、CNTK(微軟的深度學習認知工具包)或Theano(蒙特利爾大學)之上。
- TensorFlow:由谷歌開發,是使用最廣泛的深度學習庫。TensorFlow與GPU(圖形處理單元)或谷歌的定制TPU(Tensor處理單元)配合使用可以獲得最佳的性能。TensorFlow在人工智能和大數據分析中有非常重要的地位,因為人工智能和大數據對數據處理的需求非常巨大。本書使用TensorFlow內置的Keras版本。詳細教程請戳??TensorFlow是什么?怎么用?終于有人講明白了
- OpenAI Gym:用于開發、測試和比較強化學習算法的庫和開發環境。
06 自然語言處理
3 / 29
- NLTK(Natural Language Toolkit):用于完成自然語言處理(NLP)任務。
- TextBlob:一個面向對象的NLP文本處理庫,基于NLTK和模式NLP庫構建,簡化了許多NLP任務。
- Gensim:功能與NLTK類似。通常用于為文檔合集構建索引,然后確定另一個文檔與索引中每個文檔的相似程度。
關于作者:保羅·戴特爾,Deitel&Associates公司首席執行官兼首席技術官,畢業于麻省理工學院,擁有38年的計算經驗。保羅是世界上最有經驗的編程語言培訓師之一,自1992年以來一直針對軟件開發人員教授專業課程。他服務過的國際客戶包括思科、IBM、西門子、Oracle、戴爾、富達、美國國家航空航天局肯尼迪航天中心等。
本文摘編自《Python程序設計:人工智能案例實踐》,經出版方授權發布。