
Python的強大之處
Python有以下三個特點:
· 易用性和靈活性
· 全行業高接受度:Python無疑是業界最流行的資料科學語言
· 用于資料科學的Python庫的數量優勢
事實上,由于Python庫種類很多,要跟上其發展速度非常困難,因此,本文介紹了24種涵蓋端到端資料科學生命周期的Python庫,
文中提及了用于資料清理、資料操作、可視化、構建
模型甚至模型部署(以及其他用途)的庫,這是一個相當全面的串列,有助于你使用Python開啟資料科學之旅,
用于不同資料科學任務的Python庫
一、用于資料收集的Python庫
你是否曾遇到過這樣的情況:缺少解決問題的資料?這是資料科學中一個永恒的問題,這也是為什么學習提取和收集資料對資料科學家來說是一項非常重要的技能,資料提取和收集開辟了前所未有的道路,
以下是三個用于提取和收集資料的Python庫:
· Beautiful Soup
收集資料的最佳方式之一就是抓取網站(當然是以合乎道德和法律的手段!)徒手做這件事需要耗費大量的勞動和時間,Beautiful Soup無疑是一大救星,
Beautiful Soup是一個HTML和XML決議器,可為被決議的頁面創建決議樹,從而用于從web頁面中提取資料,從網頁中提取資料的程序稱為網頁抓取,
· Scrapy
Scrapy是另一個可有效用于網頁抓取的Python庫,它是一個開源的協作框架,用于從網站中提取所需資料,使用起來快捷簡單,
Scrapy是一個用于大規模網頁抓取的框架,可提供所有需要的工具有效地從網站中抓取資料,且依需要處理資料,并以使用者偏好的結構和格式存盤資料,

· Selenium
Selenium是一個倍受歡迎的自動化瀏覽器工具,在業界常用于測驗,但對于網頁抓取也非常方便,Selenium在IT領域非常流行,
撰寫Python腳本來自動化使用Selenium的web瀏覽器是很容易的,它允許免費高效地提取資料,并將其存盤在首選格式中以備后用,
二、用于資料清理和資料操作的Python庫
收集了資料之后,接下來要清理可能面臨的任何混亂資料,并學習如何操作資料,方便資料為建模做好準備,
下面是四個可用于資料清理和資料操作的Python庫,請記住,文中僅指明在現實世界中處理結構化(數值)資料和文本資料(非結構化)——而該庫串列涵蓋了所有內容,
· Pandas
在資料操作和資料分析方面,Pandas絕無敵手,Pandas一度是最流行的Python庫,Pandas是用Python語言撰寫的,主要用于資料操作和資料分析,
這個名稱來源于術語“面板資料”,“面板資料”是一個計量經濟學術語,指的是包含同一個人在多個時間段內的觀察結果的資料集,

· PyOD
難以發現例外值?這絕非個例,別擔心,PyOD庫就在這里,
PyOD是一個全面的、可伸縮的Python工具包,用于檢測外圍物件,離群值檢測基本上是識別與大多數資料顯著不同的稀有項或觀測值,
· NumPy
與Pandas一樣,NumPy也是一個非常受歡迎的Python庫,NumPy引入了支持大型多維陣列和矩陣的函式,同時還引入了高級數學函式來處理這些陣列和矩陣,
NumPy是一個開源庫,有多方貢獻者,在 Anaconda和Python中已預安裝Numpy

· Spacy
目前已經討論了如何清理資料和處理數值資料,但是如果正在處理文本資料呢?到目前為止,現有的庫都無法解決該問題,
Spacy是一個非常有用且靈活的自然語言處理( NLP )庫和框架,用于清理創建模型的文本檔案,與類似用途的其他庫相比,SpaCy速度更快,

三、用于資料可視化的Python庫
下一步是什么呢?資料可視化!此處假設已得到驗證,并且發掘了隱藏的觀點和模式,
下面是三個用于資料可視化的絕佳Python庫,
· Matplotlib
Matplotlib是Python中最流行的資料可視化庫,允許生成和構建各種各樣的圖,Matplotlib是筆者的首選庫,可與Seaborn一起用于進行資料可視化研究,

· Seaborn
Seaborn是另一個基于matplotlib的繪圖庫,它是一個為繪制有吸引力的影像而提供高級介面的python庫,matplotlib能實作功能,Seaborn只是以另一種更吸引人的視覺方式來實作,

· Bokeh
Bokeh是一個面向現代網頁瀏覽器的互動式可視化庫,為大量資料集提供優美的通用圖形結構,
Bokeh可用于創建互動式繪圖、儀表板和資料應用程式,

四、用于建模的Python庫
現在到了本文最令人期待的部分——建模!這也是大多數人一開始接觸資料科學的原因,
接下來通過這三個Python庫來探索建模,
· Scikit-learn
就像用于資料操作的Pandas和用于可視化的matplotlib一樣,scikit-learn是Python構建模型中的佼佼者,沒有什么能與之媲美,
事實上,scikit-learn建立在NumPy,SciPy和matplotlib之上,它是開放原始碼的,每個人都可以訪問,并且可以在各種環境中重用,
Scikit-learn支持在機器學習中執行的不同操作,如分類、回歸、聚類和模型選擇等,命名它——那么scikit-learn會有一個模塊,
· TensorFlow
TensorFlow由谷歌開發,是一個流行的深度學習庫,可幫助構建、培訓不同模型,是一個開放原始碼的端到端平臺,TensorFlow提供簡單的模型構建,強大的機器學習生產,以及強大的實驗工具和庫,
TensorFlow提供多個抽象級別,可根據需要進行選擇,TensorFlow通過使用高級Keras API來構建和訓練模型,這使TensorFlow入門和機器學習變得容易,
· PyTorch
什么是PyTorch?其實,這是一個基于Python的科學計算包,其功能如下:
· NumPy的替代品,可使用GPU的強大功能
· 深度學習研究型平臺,擁有最大靈活性和最快速度
五、用于模型解釋的Python庫
你真的了解模型如何作業嗎?能解釋模型為什么能夠得出結果嗎?這些是每個資料科學家都能夠回答的問題,構建黑盒模型在業界毫無用處,
所以,上文中已經提到的兩個Python庫可以幫助解釋模型的性能,
· Lime
LIME是一種演算法(庫),可以解釋任何分類器或回歸量的預測,LIME是如何做到的呢?通過可解釋的模型在區域不斷接近預測值,這個模型解釋器可用于生成任何分類演算法的解釋,

· H2O
相信很多人都聽說過H2O.ai,自動化機器學習的市場領導者,但是你知道其在Python中也有一個模型可解釋性庫嗎?
H2O的無人駕駛AI,提供簡單的資料可視化技術,用于表示高度特征互動和非線性模型行為,通過可視化提供機器學習可解釋性(MLI),說明建模結果和模型中特征的影響,

六、用于語音處理的Python庫
音頻處理或音頻分析是指從音頻信號中提取資訊和含義以進行分析、分類或任何其他任務,這正在成為深度學習中的一種流行功能,所以要留意這一點,
· Librosa
LibROSA是一個用于音樂和音頻分析的Python庫,它提供了創建音樂資訊檢索系統所需的構建塊,
· Madmom
Madmom是一個用于音頻資料分析的很棒的Python庫,它是一個用Python撰寫的音頻信號處理庫,主要用于音樂資訊檢索(MIR)任務,
· pyAudioAnalysis
pyAudioAnalysis是一個用于音頻特征提取、分類和分段的Python庫,涵蓋廣泛的音頻分析任務,例如:
· 對未知聲音進行分類
· 檢測音頻故障并排除長時間錄音中的靜音時段
· 進行監督和非監督的分割
· 提取音頻縮略圖等等
七、用于影像處理的Python庫
如果想要在資料科學行業有一番成就,那么必須學習如何使用影像資料,隨著系統能夠收集越來越多的資料(主要得益于計算資源的進步),影像處理越來越無處不在,
因此,請確保熟悉以下三個Python庫中的至少一個,
· OpenCV-Python
談到影像處理,OpenCV首先浮現在腦海中,OpenCV-Python是用于影像處理的Python API,結合了OpenCV C ++ API和Python語言的最佳特性,主要用于解決計算機視覺問題,
OpenCV-Python使用了上文提到的NumPy,所有OpenCV陣列結構都與NumPy陣列相互轉換,這也使得與使用Numpy的其他庫(如SciPy和Matplotlib)集成變得更加容易,

· Scikit-image
Scikit-image是另一個用于影像處理的python庫,是用于執行多個不同影像處理任務的演算法集合,可用于影像分割、幾何變換、色彩空間操作、分析、過濾,形態學、特征檢測等等,

· Pillow
Pillow是PIL(Python Imaging Library)的新版本,它是從PIL派生出來的,在一些Linux發行版(如Ubuntu)中被用作原始PIL的替代,
Pillow提供了幾種執行影像處理的標準程式:
· 逐像素操作
· 掩模和透明處理
· 影像過濾,例如模糊,輪廓,平滑或邊緣監測
· 影像增強,例如銳化,調整亮度、對比度或顏色
· 在影像上添加文字等等

八、作為資料庫的Python庫
學習如何從資料庫存盤、訪問和檢索資料是資料科學家必備的技能,但是如何在不首先檢索資料的情況下做到建模呢?
接下來介紹兩個與SQL相關的Python庫,
· Psycopg
Psycopg是Python編程語言中最流行的PostgreSQL(高級開源代碼關系資料庫)配接器,Psycopg的核心是完全實作Python DB API 2.0規范,

· SQLAlchemy
SQL是最流行的資料庫語言,SQLAlchemy是pythonSQL工具包和物件關系映射器,它為應用程式開發人員提供了SQL的全部功能,且極具靈活性,
SQL旨在實作高效、高性能的資料庫訪問,SQLAlchemy將資料庫視為關系代數引擎,而不僅僅是表的集合

九、用于模型部署的Python庫
你知道哪些模型部署?部署模型意味著將最終模型放入最終應用程式(技術上稱為生產環境),
· Flask
Flask是一個用Python撰寫的Web框架,廣泛用于部署資料科學模型,Flask由兩個部分組成:
· Werkzeug:Python編程語言的實用程式庫
· Jinja:Python的模板引擎

結語

喜歡林哥的文章可以給林哥點點關注,一鍵三連,以后林哥會經常出一些干貨來幫助大家學習編程
愿大家都能在編程這條路,越走越遠,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/290662.html
標籤:python
