整理了 47 個 Python 人工智能庫
Python 是人工智能(機器學習)的首選編程語言,它擁有衆多模塊,能完成人工智能開發的所有環節,沒有任何一種語言使用起來如此順手。今天就由我帶着大家揭開人工智能的神祕面紗。
今天給大家分享的是我用了將近 3 周的時間整理出來的 Python 人工智能學習的庫,主要以核心庫、機器學習庫、深度學習庫、分佈式深度學習庫、自然語言處理、計算機視覺、生物和化學庫,這幾個方面進行介紹。
Python
核心庫
/****/ 1.Numpy 庫
官網:
https://www.numpy.org.cn/
特點:
NumPy (Numerical Python) 是 Python 語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。
NumPy 通常 SciPy(Scientific Python)和 Matplotlib(繪圖庫)一起使用,這種組合廣泛用於替代 MatLab,是一個強大的科學計算環境,有助於我們通過 Python 學習數據科學或者機器學習。
/****/ 2.SciPy 庫
官網:
https://www.scipy.org/
特點:
SciPy 是一個開源的 Python 算法庫和數學工具包。SciPy 包含的模塊有最優化、線性代數、積分、插值、特殊函數、快速傅里葉變換、信號處理和圖像處理、常微分方程求解和其他科學與工程中常用的計算。它用於有效計算 Numpy 矩陣,使 Numpy 和 Scipy 協同工作,高效解決問題。
/****/ 3.Pandas庫
官網:
https://pandas.pydata.org/
特點:
Pandas 是 Python 語言的一個擴展程序庫,用於數據分析。Pandas 是一個開放源碼、BSD 許可的庫,提供高性能、易於使用的數據結構和數據分析工具,基礎是 Numpy(提供高性能的矩陣運算),可以從各種文件格式比如 CSV、JSON、SQL、Excel 導入數據。Pandas 可以對各種數據進行運算操作,比如歸併、再成形、選擇,還有數據清洗和數據加工特徵。Pandas 廣泛應用在學術、金融、統計學等各個數據分析領域。
/****/ 4.statsmodels庫
官網:
https://www.statsmodels.org/
特點:
statsmodels 是一個 Python 庫,用於擬合多種統計模型,執行統計測試以及數據探索和可視化。statsmodels 包含更多的 “經典” 頻率學派統計方法,而貝葉斯方法和機器學習模型可在其他庫中找到。包含在 statsmodels 中的一些模型:線性模型,廣義線性模型和魯棒線性模型,線性混合效應模型,方差分析(ANOVA)方法,時間序列過程和狀態空間模型,廣義的矩量法。
Python
機器學習
/****/ 5.Scikit-Learn 庫
官網:
https://scikit-learn.org.cn/
特點:
Scikit-learn(以前稱爲 scikits.learn,也稱爲 sklearn)是針對 Python 編程語言的免費軟件機器學習庫。它具有各種分類,迴歸和聚類算法,包括支持向量機,隨機森林,梯度提升,k 均值和 DBSCAN,並且旨在與 Python 數值科學庫 NumPy 和 SciPy 聯合使用。
** /****/ 6.XGBoost 庫**
官網:
https://xgboost.ai/
特點:
XGBoost 是一個優化的分佈式梯度增強庫,旨在實現高效,靈活和便攜。它在 Boosting 框架下實現機器學習算法。XGBoost 提供並行樹提升(也稱爲 GBDT,GBM),可以快速準確地解決許多數據科學問題。相同的代碼在主要的分佈式環境(Hadoop,SGE,MPI)上運行,並且可以解決數十億個示例之外的問題。
/****/ 7.LightGBM庫
官網:
https://lightgbm.readthedocs.io
特點:
LightGBM(Light Gradient Boosting Machine) 是微軟開源的一個實現 GBDT 算法的框架,支持高效率的並行訓練。LightGBM 提出的主要原因是爲了解決 GBDT 在海量數據遇到的問題,讓 GBDT 可以更好更快地用於工業實踐。其具有以下優點:更快的訓練速度、更低的內存消耗、更好的準確率、分佈式支持,可以快速處理海量數據。
/****/ 8.CatBoost 庫
官網:
https://catboost.ai/
特點:
CatBoost 是由 Yandex 的研究人員和工程師開發的基於梯度提升決策樹的機器學習方法,現已開源。CatBoost 在 Yandex 公司內廣泛使用,用於排列任務、預測和提出建議。CatBoost 是通用的,可應用於廣泛的領域和各種各樣的問題。
/****/ 9.Eli5庫
官網:
https://eli5.readthedocs.io
特點:
ELI5 是一個 Python 庫,允許使用統一 API 可視化地調試各種機器學習模型。它內置了對多個 ML 框架的支持,並提供了一種解釋黑盒模型的方法。它有助於調試機器學習分類器並解釋它們的預測。
/****/ 10.Theano 庫
官網:
https://pypi.org/project/Theano/
特點:
Theano 是一個 Python 庫,專門用於定義、優化、求值數學表達式,效率高,適用於多維數組。特別適合做機器學習。一般來說,使用時需要安裝 Python 和 Numpy 。
/****/ ****11.PyBrain 庫
官網:
https://github.com/pybrain/pybrain/
特點:
PyBrain 的概念是將一系列的數據處理的算法封裝到被稱之爲 Module 的模塊中。一個最小的 Module 通常包含基於機器學習算法的可調整的參數集合。
/****/ 12.Shogun 庫
官網:
https://github.com/shogun-toolbox/shogun
特點:
Shogun 是一個開源機器學習庫,它提供廣泛的高效和統一的機器學習方法,如多種數據表示、算法類和通用工具的組合,用於快速原型設計數據管道。
Python
**深度學習
**
/****/ 13.Chainer 庫
官網:
https://www.cnpython.com/pypi/chainerrl
特點:
ChainerCV 是一個基於 Chainer 用於訓練和運行計算機視覺任務的神經網絡工具。它涵蓋了計算機視覺模型的高質量實現, 以及開展計算機視覺研究的必備工具集。
/****/ 14. PyLearn2 庫
官網:
http://github.com/lisa-lab/pylearn2
特點:
Pylearn2 是一個基於 Theano 的機器學習庫, 它的大部分功能是基於 Theano 頂層實現的。這意味着用戶可以用數學表達式去編寫 Pylearn2 插件 (新模型、算法等)。
/****/ ****15.Hebel 庫
官網:
https://www.oschina.net/p/hebel/
特點:
Hebel 是一個通過 PyCUDA 庫使用 GPU CUDA 來加速建立神經網絡的深度學習庫。它實現了幾類最重要的神經網絡模型,提供各種激活函數和訓練模型。
/****/ 16.Neurolab 庫
官網:
https://pythonhosted.org/neurolab/
特點:
neurolab 是一個簡單而強大的 Python 神經網絡庫。包含基於神經網絡、訓練算法和靈活的框架來創建和探索其他神經網絡類型。
/****/ 17.TensorFlow 庫
官網:
https://www.tensorflow.org/
特點:
TensorFlow 是一個基於數據流編程(dataflow programming)的符號數學系統,被廣泛應用於各類機器學習(machine learning)算法的編程實現,其前身是谷歌的神經網絡算法庫 DistBelief 。Tensorflow 擁有多層級結構,可部署於各類服務器、PC 終端和網頁並支持 GPU 和 TPU 高性能數值計算,被廣泛應用於谷歌內部的產品開發和各領域的科學研究。
/****/ 18.PyTorch庫
官網:
https://pytorch.org/
特點:
PyTorch 是一個開源的 Python 機器學習庫,基於 Torch,用於自然語言處理等應用程序。PyTorch 的前身是 Torch ,其底層和 Torch 框架一樣,但是使用 Python 重新寫了很多內容,不僅更加靈活,支持動態圖,而且提供了 Python 接口。它是由 Torch7 團隊開發,是一個以 Python 優先的深度學習框架,不僅能夠實現強大的 GPU 加速,同時還支持動態神經網絡。PyTorch 既可以看作加入了 GPU 支持的 Numpy,同時也可以看成一個擁有自動求導功能的強大的深度神經網絡。除了 Facebook 外,它已經被 Twitter、CMU 和 Salesforce 等機構採用。
/****/ 19.Keras 庫
官網:
https://keras.io/zh/
特點:
Keras 是一個由 Python 編寫的開源人工神經網絡庫,可以作爲 Tensorflow、 Microsoft-CNTK 和 Theano 的高階應用程序接口,進行深度學習模型的設計、調試、評估、應用和可視化。Keras 在代碼結構上由面向對象方法編寫,完全模塊化並具有可擴展性。Keras 支持現代人工智能領域的主流算法,包括前饋結構和遞歸結構的神經網絡,也可以通過封裝參與構建統計學習模型。在硬件和開發環境方面,Keras 支持多操作系統下的多 GPU 並行計算,可以根據後臺設置轉化爲 Tensorflow、Microsoft-CNTK 等系統下的組件。
/****/ 20.Caffe2 庫
官網:
http://caffe.berkeleyvision.org/
特點:Caffe 是由 Berkeley Vision and Learning Center(BVLC) 建立的深度學習框架。它是模塊化的,速度極快。
Python
分佈式深度學習庫
/****/ 21.dist-Keras庫
官網:
https://joerihermans.com/work/distributed-keras/
特點:
dist-Keras 是在 Apache Spark 和 Keras 之上構建的分佈式深度學習框架,其重點是 “最先進的” 分佈式優化算法。以易於實現新的分佈式優化器的方式設計了框架,從而使人們能夠專注於研究。支持多種分佈式方法,例如但不限於使用數據並行方法訓練合奏和模型。
/****/ 22.elephas 庫
官網:
https://pypi.org/project/elephas/
特點:
elephas 是一個把 Python 深度學習框架 Keras 銜接到 Spark 集羣的第三方 python 包。
/****/ 23.Spark-Deep-Learning 庫
官網:
https://databricks.github.io/spark-deep-learning/
特點:
Spark-Deep-Learning 爲使用 Apache Spark 的 Python 中可伸縮的深度學習提供了高級 api。該庫來自 Databricks ,並利用 Spark 實現了兩個最強大的方面:本着 Spark 和 Spark MLlib 的精神,它提供了易於使用的 API,能夠在很少的代碼行中進行深入學習;它使用 Spark 強大的分佈式引擎來擴展對海量數據集的深度學習。
**/****/ 24.**Mxnet 庫
官網:
https://pypi.org/project/mxnet/
特點:
MXNet 是一款設計爲效率和靈活性的深度學習框架。它允許你混合符號編程和命令式編程, 從而最大限度提高效率和生產力。
/****/ 25.Sklearn-theano 庫
官網:
https://github.com/sklearn-theano/
特點:
sklearn-theano 的功能所在。你不能用它從頭到尾的訓練一個模型,但它的神奇之處就是可以把網絡作爲特徵提取器。
Python
自然語言處理
/****/ 26.NLTK 庫
官網:
https://www.nltk.org/
特點:
NLTK(Natural Language Toolkit)自然語言處理工具包,是 NLP 研究領域常用的一個 Python 庫,由賓夕法尼亞大學的 Steven Bird 和 Edward Loper 在 Python 的基礎上開發的一個模塊,至今已有超過十萬行的代碼。這是一個開源項目,包含數據集、 Python 模塊、教程等。
/****/ 27.SpaCy庫
官網:
https://spacy.io/
特點:
SpaCy 是一個 Python 和 CPython 的 NLP 自然語言文本處理庫。SpaCy 主要功能包括分詞、詞性標註、詞幹化、命名實體識別、名詞短語提取等等。
/****/ 28.PKUSeg庫
官網:
https://pypi.org/project/pkuseg/
特點:
PKUSeg-Python 是由北京大學語言計算與機器學習研究組研製推出的一個高準確度的中文分詞工具包。PKUSeg-Python 簡單易用,支持多領域分詞,在不同領域的數據上都大幅提高了分詞的準確率。
/****/ 29.Gensim 庫
官網:
https://radimrehurek.com/gensim/
特點:
Gensim 是一個相當專業的主題模型 Python 工具包。在文本處理中,比如商品評論挖掘,有時需要了解每個評論分別和商品的描述之間的相似度,以此衡量評論的客觀性。評論和商品描述的相似度越高,說明評論的用語比較官方,不帶太多感情色彩,比較注重描述商品的屬性和特性,角度更客觀。Gensim 就是 Python 裏面計算文本相似度的程序包。
/****/ 30.CoreNLP 庫
官網:
https://stanfordnlp.github.io/CoreNLP/
特點:
Stanford CoreNLP 提供了一套人類語言技術工具。支持多種自然語言處理基本功能,Stanford CoreNLP 是它的一個 Python 接口。Stanford CoreNLP 主要功能包括分詞、詞性標註、命名實體識別、句法結構分析和依存分析等等。
/****/ 31.TextBlob 庫
官網:
https://pypi.org/project/textblob/
特點:
用於處理文本數據的 Python 庫。它提供一個簡單的 API,可用於深入研究常見的 NLP 任務,如詞性標註、名詞短語提取、情感分析、文本翻譯、分類等。
/****/ 32.Stanfordnlp 庫
官網:
https://github.com/stanfordnlp/stanfordnlp
特點:
Stanford NLP 提供了一系列自然語言分析工具。它能夠給出基本的詞形、詞性,並且能夠標記句子的結構,語法形式和字詞的依賴,指明那些名字指向同樣的實體,指明情緒,提取發言中的開放關係等。
Python
計算機視覺
// 33.openCV 庫
官網:
https://opencv.org/
特點:
OpenCV 是一個基於 BSD 許可(開源)發行的跨平臺計算機視覺和機器學習軟件庫,可以運行在 Linux、Windows、Android 和 MacOS 操作系統上。它輕量級而且高效——由一系列 C 函數和少量 C++ 類構成,同時提供了 Python、Ruby、MATLAB 等語言的接口,實現了圖像處理和計算機視覺方面的很多通用算法。
/****/ 34.Scikit-Image 庫
官網:
https://scikit-image.org/
特點:
Scikit-Image 是圖像處理算法的集合,採用 Python 語言編寫。它實現了用於研究、教育和工業應用的算法和實用程序。它是一個相當簡單和直接的庫,即使對於 Python 生態系統的新手也是如此。
/****/ 35.Pillow/PIL 庫
官網:
https://pillow.readthedocs.io/en/stable
特點:
PIL(Python Imaging Library)已經是 Python 平臺事實上的圖像處理標準庫了。PIL 功能非常強大,但 API 卻非常簡單易用。由於 PIL 僅支持到 Python2.7,加上年久失修,於是一羣志願者在 PIL 的基礎上創建了兼容的版本,名字叫 Pillow,支持最新 Python 3.x,又加入了許多新特性。
/****/ 36.SimpleCV庫
官網:
http://simplecv.org/
特點:
SimpleCV 將很多強大的開源計算機視覺庫包含在一個便捷的 Python 包中。使用 SimpleCV,你可以在統一的框架下使用高級算法,例如特徵檢測、濾波和模式識別。使用者不用清楚一些細節,比如圖像比特深度、文件格式、顏色空間、緩衝區管理、特徵值還有矩陣和圖像的存儲。
/****/ 37.Mahotas庫
官網:
https://pypi.org/project/mahotas/0.99/
特點:
Mahotas 是一個 Python 的圖像處理庫,包含大量的圖像處理算法,使用 C++ 實現的算法,處理性能相當好。
/****/ 38.ITK庫
官網:
https://itk.org/
特點:
ITK( Insight Segmentation and Registration Toolkit)是美國國家衛生院下屬的國立醫學圖書館開發的一款醫學圖像處理軟件包,是一個開源的、跨平臺的影像分析擴展軟件工具。
/****/ 39.Pgmagick庫
官網:
https://pythonhosted.org/pgmagick/index.html
特點:
Pgmagick 是 GraphicsMagick 庫的一個基於 Python 的包裝器。圖像處理系統有時被稱爲圖像處理的瑞士軍刀。它提供了一個健壯而高效的工具和庫集合,支持以 88 種主要格式(包括重要格式,如 DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM 和 TIFF)讀取、寫入和操作圖像。
/****/ 40.Pycairo 庫
官網:
https://www.cairographics.org/pycairo/
特點:
pyCairo 是一個 Python 的優秀 2D 圖形渲染庫。
**/****/ 41.**Fastai 庫
官網:
https://pypi.org/project/fastai/
特點:
計算機視覺、文本、表格數據、時間序列、協同過濾等常見深度學習應用提供單一一致界面的深度學習庫。
/****/ 42.Imutils 庫
官網:
https://pypi.org/project/imutils/
特點:
imutils 是在 OPenCV 基礎上的一個封裝, 達到更爲簡結的調用 OPenCV 接口的目的, 它可以輕鬆的實現圖像的平移, 旋轉, 縮放, 骨架化等一系列的操作。
/****/ 43.PyTorchCV 庫
官網:
https://pytorch-cn.readthedocs.io/zh/latest/
特點:
TorchCV 支持圖像分類、語義分割、目標檢測、姿態檢測、實例分割、生成對抗網絡等任務中的多個常見模型。
Python
生物 / 化學
/****/ 45.BioPython 庫
官網:
https://biopython-cn.readthedocs.io/
特點:
Biopython 項目是旨在減少計算生物學中代碼重複的開源項目之一,由國際開發人員協會創建。它包含表示生物序列和序列註釋的類,並且能夠讀取和寫入各種文件格式(FASTA,FASTQ,GenBank 和 Clustal 等),支持以程序化方式訪問生物信息的在線數據庫(例如,NCBI)。獨立的模塊擴展了 Biopython 的序列比對,蛋白質結構,羣體遺傳學,系統發育,序列基序和機器學習等功能。
**/****/ 46.**DashBio 庫
官網:
http://dash.plot.ly/dash-bio
特點:
Dash Bio 是一個免費的開源 Python 庫, 用於生物信息學和藥物開發應用。
/****/ 47.RDKit庫
官網:
http://www.rdkit.org/
特點:
RDKit 是一個用於化學信息學的開源工具包,基於對化合物 2D 和 3D 分子操作,利用機器學習方法進行化合物描述符生成,fingerprint 生成,化合物結構相似性計算,2D 和 3D 分子展示等。基於 Python 語言進行調取使用。
本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源:https://mp.weixin.qq.com/s/k2pW_6vDxUYFUT3sM_hn4Q