這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

全文共3118字,預計學習時長13分鐘


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:searchenginejournal


如果你是一名數據科學家或數據分析師,或者只是對這一行業感興趣,那下文中這些廣受歡迎且非常實用的Python庫你一定得知道。


從數據收集、清理轉化,到數據可視化、圖像識別和網頁相關,這15個Python庫涵蓋廣泛,本文將對它們進行簡介。


想必其中一些你已經熟知,但如果有不知道的,強烈建議你一定要好好了解一下。


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

數據收集


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:unsplash


大部分數據分析項目都始於數據收集和提取。在一些情況下,當為公司處理現存問題時,公司可能會提供相關的數據組。但有些時候,可能並沒有現成的數據,需要數據工程師自行收集。最常見的情況就是,數據工程師需要從網上自行尋找數據。


1. Scrapy


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:letslearnabout


要想編寫一個Python網絡爬蟲來從網頁上提取信息,Scrapy可能是大部分人第一個想到的Python庫。例如,使用者可以提取某城市所有餐廳的評論或是收集網購網站上某一種產品的所有評論。


對於該庫最常見的用法是利用它來識別出現在網站頁面上那些有趣的信息模式,無論這些信息是以URL的形式出現還是以XPath的形式出現。一旦理清了這些信息的模式,Scrapy就可以協助使用者自動提取所需信息,並將其整理為表格或JSON格式的數據結構。


使用pip即可輕鬆安裝Scrapy。


2. Selenium


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:medium


Selenium設計者的初衷是將其打造成一個自動網站測試框架,但開發者們發現將其用作網頁數據抓取工具的效果更佳。


使用者在感興趣的網站上已經進行了交互行為之後,Selenium一般能派上用場。比如說,使用者可能需要在網站上註冊一個賬戶,登陸自己的賬戶,再點擊幾個按鈕或是鏈接才能找到自己想要的內容。


上述鏈接被定義為JavaScript函數。在這一情況下,要應用Scrapy或者Beautiful Soup可能都不是很便捷,但使用Selenium就可以輕而易舉地完成這一過程。


但應當注意,Selenium比普通的抓取庫運行速度要慢得多。這是因為Selenium會將Chrome這樣的瀏覽器初始化並模擬瀏覽器代碼定義的所有行為。


因此,在處理URL模式或Xpaths時,最好還是使用Scrapy或者Beautiful Soup,不到萬不得已不要使用Selenium。


3. BeautifulSoup


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:gitconnected


Beautiful Soup是另一個可以用來收集網站內容的Python庫。業界普遍認為,學習BeautifulSoup所需時間比學習Scrapy所需時間要短很多。除此之外,Beautiful Soup更適合應用於規模相對較小的問題或一次性的任務。


Scrapy要求使用者開發自己的“爬蟲”並通過命令行進行操作,而使用Beautiful Soup只需將其功能導入計算機中並聯機使用即可。因此,使用者甚至可以將Beautiful Soup應用於自己的Jupyternotebook。


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

數據清理和轉化


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:unsplash


數據清理和轉化的重要意義無需贅述,已經有很多出色的Python庫能夠完美地處理這一問題。筆者將選擇幾個作為數據科學家或分析師不可不知的進行簡要介紹。


4. Pandas


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

這裡提Pandas可能有點多餘了,只要是處理過數據的從業者,就不可能沒用過Pandas。


使用者可以運用Pandas操控處於Pandas數據框架內的數據。Pandas還內置巨量的函數,幫助使用者進行數據轉換。


無需多言,要想學好Python,Pandas必不可少。


5. Numpy


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:medium


無論是普通用戶,還是數據科學家和分析師,Numpy都和Pandas一樣,是一個不可或缺的Python庫。


Numpy將Python的對象列表拓展成了全面的多維度序列。同時,Numpy還內置了海量的數學函數,這些函數幾乎能滿足使用者所有的運算要求。通常情況下,使用者可以將Numpy序列用作矩陣並進行矩陣運算。


筆者認為,大部分的數據科學家開始寫Python代碼時,第一步都是輸入以下內容:


import numpy as np

import pandas as pd


因此,說以上兩個庫是Python使用者中最受歡迎的無可厚非。


6. Spacy


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:medium


Spacy可能不像上兩個庫一樣名聲遠揚。Numpy和Pandas主要用於處理數值型數據和結構型數據,而Spacy則能夠幫助使用者將自由文本轉化為結構型數據。


Spacy是最受歡迎的自然語言處理庫之一。從購物網站上抓取了大量的產品評論後需要從中提取有用的信息才能對它們進行分析。Spacy含有大量的內置功能,這些功能能對使用者的工作提供大量幫助。例如詞法分析器,已命名個體識別以及特定文本檢測。


Spacy還有一大亮點,即它支持多種語言版本。其官網上聲稱該庫提供超55種語言版本。


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

數據可視化


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:unsplash


數據可視化是數據分析中不可或缺的環節,只有將結果進行可視化處理才能對數據內容進行解釋。


7. Matplotlib


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:scriptverse


Matplotlib是最全面的Python數據可視化庫。有人認為Matplotlib的界面很難看,但筆者認為,作為最基礎的Python數據可視化庫,Matplotlib能為使用者的可視化目標提供最大的可能性。


使用JavaScript的開發者們也有各自偏好的可視化庫,但當所處理的任務中涉及大量不被高級庫所支持的定製功能時,開發者們就必須用到D3.js。Matplotlib也是如此。


8. Plotly


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:pngitem


雖然筆者堅信要進行數據可視化,就必須得掌握Matplotlib,但大多數情況下讀者更願意使用Plotly,因為使用Plotly只需要寫最少的代碼就能得出最多彩繽紛的圖像。


無論是想構造一張3D表面圖,或是一張基於地圖的散點圖,又或是一張交互性動畫圖,Plotly都能在最短的時間內滿足要求。


Plotly還提供一個表格工作室,使用者可以將自己的可視化上傳到一個在線存儲庫中以便未來進行編輯。


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

數據模塊化


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:unsplash


從事模塊化的數據分析師通常會被稱為高級分析師。如今,機器學習已經不是什麼新鮮概念了。而Python通常被認為是機器學習最常用的語言,因此也有大量出色的庫支持在Python中使用。


9. Scikit Learn


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:kindpng


在沉溺於“深度學習”之前,所有人都應當從使用Scikit Learn來開啟自己的機器學習之旅。Scikit Learn有六大主要模塊,功能如下:


· 數據預處理

· 維度縮減

· 數據迴歸

· 數據分類

· 數據聚類分析

· 模型選擇


只要能用好Scikit Learn,就已經算得上是一名優秀的數據科學家了。


10. Tensorflow


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別


Tensorflow是由谷歌推出的開源機器學習庫。它最受歡迎的功能便是Tensorboard上的數據流圖像。


Tensorboard是一個基於網頁自動生成的儀表盤,它將數據學習流和結果進行了可視化處理,這一功能對於排錯和展示都十分有用。


11. PyTorch


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:mattolpinski


PyTorch是由Facebook發佈的一個開源庫,用作Python的公用機器學習框架。與Tensorflow相比,PyTorch的語句更加適用於Python。正因此,學習使用PyTorch也更加容易。


作為一個專注於深度學習的庫,PyTorch還具有非常豐富的應用程序接口函數和內置函數來協助數據科學家更加快捷地訓練自己的深度學習模型。


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

音頻和圖像識別


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:unsplash


機器學習不僅能夠處理數字,同時也能幫助處理音頻和圖像(視頻往往被認為是很多幀圖像組合在一起)。因此處理這些多媒體數據時,上述機器學習庫遠遠不夠。


12. OpenCV


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:opencv


OpenCV是最常用的圖像和視頻識別庫。毫不誇張地說,OpenCV能讓Python在圖像和視頻識別領域完全替代Matlab。


OpenCV提供各種應用程序接口,同時它不僅支持Python,還支持Java和Matlab。OpenCV出色的處理能力使其在計算機產業和學術研究中都廣受好評。


13. Librosa


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:github


Librosa是一個非常強大的音頻和聲音處理Python庫。Librosa可以用來從音頻段中提取各個部分,例如韻律,節奏以及節拍。


像Laplacia分割這樣極度複雜的算法,在使用了Librosa之後只需幾行代碼就能輕而易舉的運用。


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

網頁


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:unsplash


Python在被廣泛運用於數據科學領域前,曾經可是網頁開發領域的寵兒。因此也有很多用於網頁開發的庫。


14. Django


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:amsterdam


要想使用Python來開發一個網頁服務後端,Django一直都是不二之選。Django的設計理念便是,能用幾行代碼就建立一個網站的高級框架。


Django直接與大多數知名數據庫相連,這樣使用者就可以省下建立連接和數據模型開發的時間。Django的使用者只需專注於業務邏輯而不需擔心受創建、更新、讀取和刪除(Create,update,retrieve and delete, CURD)的操控,因為Django是一個由數據庫驅動的框架。


15. Flask


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

圖源:pythonprogramming


Flask是一個用於Python的輕量級網頁開發框架。其最寶貴的特點是能夠輕而易舉地進行能夠滿足任何需求的定製化處理。


有很多提供網站UI的知名Python庫和Python工具都是使用Flask構建的,例如Plotly Dash和Airflow。這些網站之所以使用Flask,正是由於其輕量級的特點。


誠然,還有許多優秀的Python庫應當被提及,但上述這些庫就足夠你研究好一陣子了。人生苦短,及時Python!


這15個Python庫,涵蓋從數據收集、清理轉化到圖像識別

我們一起分享AI學習與發展的乾貨


分享到:


相關文章: