常用Python庫整理

2022-11-11 15:02:40

記錄工作和學習中遇到和使用過的Python庫。

Target

四個Level

  • 整理 Collect

  • 學習 Learn

  • 練習 Practice

  • 掌握 Master

1. Python原生和功能增強

1.1 python-dateutil

Python-dateutil 模組為標準的 datetime 模組提供了強大的功能擴充套件。普通的 Python datetime 無法做到的事情都可以使用 python-dateutil 完成。

https://juejin.cn/post/7028598668483641351

1.2 pytz

類似於dateutils,該庫可以幫助你操作日期和時間。處理時區很麻煩。幸運的是,這個包可以讓時區處理變得很容易。

關於時間,我的經驗是:在內部永遠使用UTC,只有在需要產生供人閱讀的輸出時才轉換成本地時間。

https://cloud.tencent.com/developer/article/1619246

1.3 jsonpath

jsonpath用來解析json資料,是一種簡單的方法來提取給定JSON檔案的部分內容。它提供了類似正規表示式的語法,可以解析複雜的巢狀資料結構,可以非常方便的提取介面返回的資料資訊。

https://cloud.tencent.com/developer/article/1511637

Online Evaluator: https://jsonpath.com/

1.4 progress,tqdm

建立進度條。

https://blog.csdn.net/qianfengpython/article/details/118764070

2. 科學計算,統計學,資料分析和視覺化

2.1 Numpy

NumPy是Numerical Python的簡寫,是Python數值計算的基石。它提供多種資料結構、演演算法以及大部分涉及Python數值計算所需的介面。NumPy還包括其他內容:

  • 快速、高效的多維陣列物件ndarray

  • 基於元素的陣列計算或陣列間數學操作函數

  • 用於讀寫硬碟中基於陣列的資料集的工具

  • 線性代數操作、傅立葉變換以及亂數生成

除了NumPy賦予Python的快速陣列處理能力之外,NumPy的另一個主要用途是在演演算法和庫之間作為資料傳遞的資料容器。對於數值資料,NumPy陣列能夠比Python內建資料結構更為高效地儲存和運算元據。

 

2.2 Pandas

pandas提供了高階資料結構和函數,這些資料結構和函數的設計使得利用結構化、表格化資料的工作快速、簡單、有表現力。

 

2.3 Matplotlib

對於Python程式設計者來說也有其他視覺化庫,但matplotlib依然使用最為廣泛,並且與生態系統的其他庫良好整合。我認為將它作為預設視覺化工具是一個安全的選擇。

 

2.4 SciPy

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

  • scipy.integrate 數值積分例程和微分方程求解器

  • scipy.linalg 線性代數例程和基於numpy.linalg的矩陣分解

  • scipy.optimize 函數優化器(最小化器)和求根演演算法

  • scipy.signal 訊號處理工具

  • scipy.sparse 稀疏矩陣與稀疏線性系統求解器

  • scipy.special SPECFUN的包裝器。SPECFUN是Fortran語言下實現通用資料函數的包,例如gamma函數。

  • scipy.stats 標準的連續和離散概率分佈(密度函數、取樣器、連續分佈函數)、各類統計測試、各類描述性統計。

 

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

2.5 Statsmodels

statsmodels是一個統計分析包。

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

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

  • 方差分析(ANOVA )

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

  • 非引數方法:核密度估計、核迴歸

  • 統計模型結果視覺化

statsmodels更專注於統計推理,提供不確定性評價和p值引數。相反,scikit-learn更專注於預測。

2.6 Seaborn

 

2.7 PyEcharts

 

2.8 Plotly

  • 需要梯子

2.9 Pasty

Patsy是一個python庫,用於描述統計模型(尤其是線性模型),方法是通過一個叫做公式語法(formula syntax)的字串來描述。這種公式語法的靈感來源於R和S語言中的公式語法。

Patsy的公式是有特殊格式的字串,像下面這樣: y ~ x0 + x1 這種a + b的語法並不代表將a和b相加,而是代表為模型建立的設計矩陣的術語(terms in the design matrix)。patsy.dmatrices函數,取一個公式字串和一個資料集(可以使DataFrame或dict),然後為線性模型產生設計矩陣。

https://developer.aliyun.com/article/798127

 

3. Web開發

3.1 Flask

 

3.2 Flask-restful

基於Flask快速建立restful API介面。

 

3. Django

 

4. 網路,HTTP,爬蟲

4.1 urllib, urllib2, urllib3

Python 內建。用來傳送HTTP請求,包含了可以新增headers,認證等高階資訊。

urllib2給python2用的,python3中urllib2和併到了urllib。

https://zhuanlan.zhihu.com/p/92847111

 

4.2 requests

Python內建。傳送HTTP請求,比urllib更簡潔。

https://www.runoob.com/python3/python-requests.html

4.3 lxml

用來處理xml和HTML檔案。語法上利用xpath。

4.4 BeautifulSoup

處理HTML檔案。

4.5 Selenium

自動化測試,可以用來完全模擬瀏覽器,不停傳送爬蟲請求。

4.6 scrapy

爬蟲框架。

4.7 Socket

通訊端通訊底層庫,用於在伺服器和使用者端間建立TCP或UDP連線,通過連線傳送請求與響應。

5. 圖形介面

5.1 PyQt

 

6. 自然語言處理

6.1 NTLK

英文文書處理。

6.2 jieba

中文分詞。

6.3 HanLP

完整中文自然語言處理工具鏈,分詞,詞性標註,命名實體識別,依存句法分析等。

7. 影象處理

7.1 OpenCV

https://opencv.org/

 

7.2 Pillow

用來快速處理影象image。

8. 機器學習

8.1 Scikit-learn

scikit-learn專案誕生於2010年,目前已成為Python程式設計者首選的機器學習工具包。僅僅七年,scikit-learn就擁有了全世界1 500位程式碼貢獻者。其中包含以下子模組:

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

  • 迴歸:Lasso、嶺迴歸等

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

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

  • 模型選擇:網格搜尋、交叉驗證、指標矩陣

  • 預處理:特徵提取、正態化

scikit-learn與pandas、statsmodels、IPython一起使Python成了高效的資料科學程式語言。

8.2 TensorFlow

 

8.3 Keras

 

8.4 PyTorch

 

 

9. 資料庫

9.1 SQLAlchemy

python database ORM framework

9.2 psycopg2

Python-PostgreSQL 連線框架。

 

10. 知識圖譜

 

11. 互動程式設計

11.1 IPython

儘管它本身並不提供任何計算或資料分析工具,它的設計側重於在互動計算和軟體開發兩方面將生產力最大化。它使用了一種執行-探索工作流來替代其他語言中典型的編輯-編譯-執行工作流。它還提供針對作業系統命令列和檔案系統的易用介面。由於資料分析編碼工作包含大量的探索、試驗、試錯和遍歷,IPython可以使你更快速地完成工作。

 

11.2 Jupyter

 

11.3 Jupyterlab

 

12. 音訊處理

12.1 PyAudioAnalysis

非常好用且強大的音訊分析開源工具,能實現音訊的特徵提取、分類和迴歸模型的訓練和執行,以及其他一些實用的功能。

https://www.cnblogs.com/littlemujiang/p/pyAudioAnalysis-wen-dang.html

12.2 Pydub

pydub 提供了簡潔的高層介面,極大的擴充套件了python處理音訊檔的能力,pydub可能不是最強大的Python音訊處理庫,但絕對是Python最簡潔易用的音訊庫只要,非要說有什麼弊端,大概只有高度依賴ffmpeg,Linux安裝起來不太方便吧。其功能足以滿足大多數情況下的音訊處理需求。

https://blog.csdn.net/baidu_29198395/article/details/86694365

12.3 librosa

常見的時頻處理、特徵提取、繪製聲音圖形等功能應有盡有,功能十分強大。

13. 文書處理,檔案處理,詞雲

13.1 openpyxl

處理MS Excel的庫。

13.2 python-docx

處理MS Word的庫。

13.3 Wordcloud

詞雲生成器

https://bbs.huaweicloud.com/blogs/382777

 

14. 打包、平臺轉換等

14.1 Py2exe

將python指令碼轉換為windows上可以獨立執行的可執行程式。

https://blog.csdn.net/bruce_6/article/details/82906444

14.2 Pyinstaller

https://zhuanlan.zhihu.com/p/71081512