Python數據工具箱涵蓋從數據源到數據可視化的完整流程中涉及到的經常使用庫、函數和外部工具。其中既有Python內置函數和標準庫,又有第三方庫和工具。這些庫可用於文件讀寫、網絡抓取和解析、數據鏈接、數清洗轉換、數據計算和統計分析、圖像和視頻處理、音頻處理、數據挖掘/機器學習/深度學習、數據可視化、交互學習和集成開發以及其餘Python協同數據工做工具。html
爲了區分不一樣對象的來源和類型,本節將在描述中經過如下方法進行標識:python
[Python內置函數]:Python自帶的內置函數。函數無需導入,直接使用。例如要計算-3.2的絕對值,直接使用abs函數,方法是 abs(-3.2) 。mysql
[Python標準庫]:Python自帶的標準庫。Python標準庫無需安裝,只須要先經過import方法導入即可使用其中的方法。例如導入time模塊,而後使用其中的strftime()方法:git
# coding: utf-8
import time print(time.strftime('%Y/%m/%d %H:%M:%S'))
輸出結果:
2019/07/09 20:20:31
[第三方庫]:Python的第三方庫。這些庫須要先進行安裝(部分可能須要配置),一般使用cmd命令 pip install xxx安裝,而後經過import方法導入即可使用其中的方法。正則表達式
[外部工具]:非Python寫成的庫或包,用於Python數據工做的相關工具。redis
01 文件讀寫算法
文件的讀寫包括常見的txt、Excel、xml、二進制文件以及其餘格式的數據文本,主要用於本地數據的讀寫。sql
庫/函數shell |
描述數據庫 |
推薦度 |
open(name[, mode[, buffering]]) |
[Python內置函數]Python默認的文件讀寫方法 |
★★★ |
numpy.loadtxt、numpy.load和numpy.fromfile |
[第三方庫]Numpy自帶的讀寫函數,包括loadtxt、load和fromfile,用於文本、二進制文件讀寫 |
★★★ |
pandas.read_* |
[第三方庫]Pandas自帶的read文件方法,例如ead_csv、read_fwf、read_table等,用於文本、Excel、二進制文件、HDF五、表格、SAS文件、SQL數據庫、Stata文件等的讀寫 |
★★★ |
xlrd |
[第三方庫]用於Excel文件讀取 |
★★ |
xlwt |
[第三方庫]用於Excel文件寫入 |
★★ |
pyexcel-xl |
[第三方庫]用於Excel文件讀寫 |
★★ |
xluntils |
[第三方庫]用於Excel文件讀寫 |
★★ |
pyExcelerator |
[第三方庫]用於Excel文件讀寫 |
★ |
openpyxl |
[第三方庫]用於Excel文件讀寫 |
★ |
lxml |
[第三方庫]xml和HTML讀取和解析 |
★★★ |
xml |
[Python標準庫]xml對象解析和格式化處理 |
★★★ |
libxml2 |
[第三方庫]xml對象解析和格式化處理 |
★ |
xpath |
[第三方庫]xml對象解析和格式化處理 |
★★ |
win32com |
[第三方庫]有關Windows系統操做、Office(Word、Excel等)文件讀寫等的綜合應用庫 |
★ |
02 網絡抓取和解析
網絡抓取和解析用於從互聯網中抓取信息,並對HTML對象進行處理,有關xml對象的解析和處理的庫在「1.文件讀寫」中找到。
庫/函數 |
描述 |
推薦度 |
requests |
[第三方庫]網絡請求庫,提供多種網絡請求方法並可定義複雜的發送信息 |
★★★ |
urllib |
[Python標準庫] Python自帶的庫,簡單的讀取特定URL並得到返回的信息 |
★★ |
urllib2 |
[Python標準庫] Python自帶的庫,讀取特定URL並得到返回的信息,相對於urllib可處理更多HTTP信息,例如cookie、身份驗證、重定向等 |
★★ |
urlparse |
[Python標準庫] Python自帶的URL解析庫,可自動解析URL不一樣的域、參數、路徑等 |
★★★ |
HTMLParser |
[Python標準庫]Python自帶的HTML解析模塊,可以很容易的實現HTML文件的分析 |
★★★ |
Scapy |
[第三方庫]分佈式爬蟲框架,可用於模擬用戶發送、偵聽和解析並假裝網絡報文,經常使用於大型網絡數據爬取 |
★★★ |
Beautiful Soup |
[第三方庫]Beautiful Soup是網頁數據解析和格式化處理工具,一般配合Python的urllib、urllib2等庫一塊兒使用 |
★★★ |
03 數據庫鏈接
數據庫鏈接可用於鏈接衆多數據庫以及訪問通用數據庫接口,可用於數據庫維護、管理和增、刪、改、查等平常操做。
庫/函數 |
描述 |
推薦度 |
mysql-connector-python |
[第三方庫]MySQL官方驅動鏈接程序 |
★★★ |
MySQL-python |
[第三方庫]MySQL鏈接庫 |
★★ |
cx_Oracle |
[第三方庫]Oracle鏈接庫 |
★★★ |
psycopg2 |
[第三方庫]Python編程語言中很是受歡迎的PostgreSQL適配器 |
★★★ |
redis |
[Python標準庫]Redis鏈接庫 |
★★★ |
pymongo |
[第三方庫]MongoDB官方驅動鏈接程序 |
★★★ |
HappyBase |
[第三方庫]HBase鏈接庫 |
★★★ |
py2neo |
[第三方庫]Neo4j鏈接庫 |
★★★ |
cassandra-driver |
[第三方庫] Cassandra(1.2+)和DataStax Enterprise(3.1+)鏈接庫 |
★★★ |
sqlite3 |
[Python標準庫] Python自帶的模塊,用於操做SQLite數據庫 |
★★★ |
pysqlite2 |
[第三方庫] SQLite 3.x鏈接庫 |
★★ |
bsddb3 |
[第三方庫]Berkeley DB鏈接庫 |
bsddb3 |
bsddb |
[Python標準庫] Python自帶的模塊,提供了一個到Berkeley DB庫的接口 |
★★ |
dbhash |
[Python標準庫] Python自帶的模塊,dbhash模塊提供了使用BSD數據庫庫打開數據庫的功能。該模塊鏡像了提供對DBM樣式數據庫訪問的其餘Python數據庫模塊的接口。 bsddb模塊須要使用dbhash |
★★ |
adodb |
[第三方庫] ADOdb是一個數據庫抽象庫,支持常見的數據和數據庫接口並可自行進行數據庫擴展,該庫能夠對不一樣數據庫中的語法進行解析和差別化處理,具備很高的通用性 |
★★★ |
SQLObject |
[第三方庫] SQLObject是一種流行的對象關係管理器,用於向數據庫提供對象接口,其中表爲類、行爲實例、列爲屬性 |
★★ |
SQLAlchemy |
[第三方庫] SQLAlchemy是Python SQL工具包和對象關係映射器,爲應用程序開發人員提供了SQL的所有功能和靈活性控制 |
★★ |
ctypes |
[第三方庫] ctypes是Python的一個外部庫,提供和C語言兼容的數據類型,能夠很方便地調用C DLL中的函數 |
★★★ |
pyodbc |
[第三方庫] Python經過ODBC訪問數據庫的接口庫 |
★★★ |
Jython |
[第三方庫] Python經過JDBC訪問數據庫的接口庫 |
★★★ |
04 數據清洗轉換
數據清洗轉換主用於數據正式應用以前的預處理工做。
庫/函數 |
描述 |
推薦度 |
frozenset([iterable]) |
[Python內置函數]返回一個新的frozenset對象,可選擇從iterable取得的元素 |
★★★ |
int(x) |
[Python內置函數]返回x的整數部分 |
★★★ |
isinstance(object, classinfo) |
[Python內置函數]返回object是不是指定的classinfo實例信息 |
★★★ |
len(s) |
[Python內置函數]返回對象的長度或項目數量 |
★★★ |
long(x) |
[Python內置函數]返回由字符串或數字x構造的長整型對象 |
★★★ |
max(iterable[, key]) |
[Python內置函數]返回一個可迭代或最大的兩個或多個參數中的最大項 |
★★★ |
min(iterable[, key]) |
[Python內置函數]返回一個可迭代或最大的兩個或多個參數中的最小項 |
★★★ |
range(start, stop[, step]) |
[Python內置函數]用於與for循環一塊兒建立循環列表,經過指定start(開始)、stop(結束)和step(步長)控制迭代次數並獲取循環值 |
★★★ |
raw_input(prompt) |
[Python內置函數]捕獲用戶輸入並做爲字符串返回(不推薦使用input做爲用戶輸入的捕獲函數) |
★★★ |
round(number[, ndigits]) |
[Python內置函數]返回number小數點後ndigits位的四捨五入的浮點數 |
★★★ |
set([iterable]) |
[Python內置函數]返回一個新的集合對象,可選擇從iterable獲取的元素 |
★★★ |
slice(start, stop[, step]) |
[Python內置函數]返回表示由範圍(start、stop、step)指定的索引集的切片對象 |
★★ |
sorted(iterable[, cmp[, key[, reverse]]]) |
[Python內置函數]從iterable的項中返回一個新的排序列表 |
★★★ |
xrange(start, stop[, step]) |
[Python內置函數]此函數與range()很是類似,但返回一個xrange對象而不是列表 |
★★★ |
string |
[Python標準庫]字符串處理庫,可實現字符串查找、分割、組合、替換、去重、大小寫轉換及其餘格式化處理 |
★★★ |
re |
[Python標準庫]正則表達式模塊,在文本和字符串處理中常用 |
★★★ |
random |
[Python標準庫]該模塊爲各類分佈實現僞隨機數生成器,支持數據均勻分佈、正態(高斯)分佈、對數正態分佈、負指數分佈、伽馬和β分佈等 |
★★★ |
os |
[Python標準庫]用於新建、刪除、權限修改、切換路徑等目錄操做,以及調用執行系統命令 |
★★★ |
os.path |
[Python標準庫]針對目錄的遍歷、組合、分割、判斷等操做,經常使用於數據文件的判斷、查找、合併 |
★★★ |
prettytable |
[Python標準庫]格式化表格輸出模塊 |
★★ |
json |
[Python標準庫]Python對象與json對象的轉換 |
★★★ |
base64 |
[Python標準庫]將任意二進制字符串編碼和解碼爲文本字符串的Base16,Base32和Base64 |
★★★ |
數據計算和統計分析主要用於數據探查、計算和初步數據分析等工做。
庫/函數 |
描述 |
推薦度 |
numpy |
[第三方庫]NumPy是Python科學計算的基礎工具包,不少Python數據計算工做庫都依賴它 |
★★★ |
scipy |
[第三方庫]Scipy是一組專門解決科學和工程計算不一樣場景的主題工具包 |
★★★ |
pandas |
[第 三方庫]Pandas是一個用於Python數據分析的庫,它的主要做用是進行數據分析。Pandas提供用於進行結構化數據分析的二維的表格型數據結構 DataFrame,相似於R中的數據框,能提供相似於數據庫中的切片、切塊、聚合、選擇子集等精細化操做,爲數據分析提供了便捷 |
★★★ |
statsmodels |
[第 三方庫]Statsmodels是Python的統計建模和計量經濟學工具包,包括一些描述性統計、統計模型估計和統計測試,集成了多種線性迴歸模型、廣 義線性迴歸模型、離散數據分佈模型、時間序列分析模型、非參數估計、生存分析、主成分分析、核密度估計以及普遍的統計測試和繪圖等功能 |
★★★ |
abs(x) |
[Python內置函數]返回x的絕對值 |
★★★ |
cmp(x, y) |
[Python內置函數]比較兩個對象x和y,並根據結果返回一個整數。 若是x <y,則返回值爲負數,若是x> y則返回值爲正 |
★★ |
float(x) |
[Python內置函數]返回從數字或字符串x構造的浮點數 |
★★★ |
pow(x, y[, z]) |
[Python內置函數]返回x的y次冪。若是z存在,則返回x的y次冪,模z |
★★★ |
sum(iterable[, start]) |
[Python內置函數]從左到右依次迭代,返回總和 |
★★★ |
math |
[Python標準庫]數學函數庫,包括正弦、餘弦、正切、餘切、弧度轉換、對數運算、圓周率、絕對值、取整等數學計算方法 |
★★★ |
cmath |
[Python標準庫]與math基本一致,區別是cmath運算的是複數 |
★★ |
decimal |
[Python標準庫]10進制浮點運算 |
★★ |
fractions |
[Python標準庫]分數模塊提供對有理數算術的支持 |
★★ |
06 天然語言處理和文本挖掘
庫/函數 |
描述 |
推薦度 |
nltk |
[第三方庫]NLTK是一個Python天然語言處理工具,它用於對天然語言進行分類、解析和語義理解。目前已經有超過50種語料庫和詞彙資源 |
★★★ |
pattern |
[第三方庫]Pattern是一個網絡數據挖掘Python工具包,提供了用於網絡挖掘(如網絡服務、網絡爬蟲等)、天然語言處理(如詞性標註、情感分析等)、機器學習(如向量空間模型、分類模型等)、圖形化的網絡分析模型 |
★★★ |
gensim |
[第三方庫]Gensim是一個專業的主題模型(發掘文字中隱含主題的一種統計建模方法)Python工具包,用來提供可擴展統計語義、分析純文本語義結構以及檢索語義上類似的文檔 |
★★★ |
結巴分詞 |
[第三方庫]結巴分詞是國內流行的Python文本處理工具包,分詞模式分爲三種模式:精確模式、全模式和搜索引擎模式,支持繁體分詞、自定義詞典等,是很是好的Python中文分詞解決方案,能夠實現分詞、詞典管理、關鍵字抽取、詞性標註等 |
★★★ |
SnowNLP |
[第三方庫]SnowNLP是一個Python寫的類庫,能夠方便的處理中文文本內容。該庫是受到了TextBlob的啓發而針對中文處理寫的類庫,和TextBlob不一樣的是這裏沒有用NLTK,全部的算法都是本身實現的,而且自帶了一些訓練好的字典 |
★★ |
smallseg |
[第三方庫] Smallseg是一個開源的、基於DFA的輕量級的中文分詞工具包。可自定義詞典、切割後返回登陸詞列表和未登陸詞列表、有必定的新詞識別能力 |
★★ |
spaCy |
[第三方庫] spaCy是一個Python天然語言處理工具包,它結合Python和Cython使得天然語言處理能力達到了工業強度 |
★★★ |
TextBlob |
[第三方庫]TextBlob 是一個處理文本數據的Python庫,可用來作詞性標註、情感分析、文本翻譯、名詞短語抽取、文本分類等 |
★★ |
PyNLPI |
[第三方庫] PyNLPI是一個適合各類天然語言處理任務的集合庫,可用於中文文本分詞、關鍵字分析等,尤爲重要的是其支持中英文映射,支持UTF-8和GBK編碼的字符串等 |
★★★ |
07 圖像和視頻處理
庫/函數 |
描述 |
推薦度 |
PIL |
[第三方庫]PIL是一個經常使用的圖像讀取、處理和分析的庫,提供了多種數據處理、變換的操做方法和屬性 |
★★ |
OpenCV |
[第 三方庫]OpenCV是一個強大的圖像和視頻工做庫。它提供了多種程序接口,支持跨平臺(包括移動端)應用。OpenCV的設計效率很高,它以優化的C / C ++編寫,庫能夠利用多核處理。除了對圖像進行基本處理外,還支持圖像數據建模,並預製了多種圖像識別引擎,如人臉識別 |
★★★ |
scikit-image |
[第三方庫] scikit-image(也稱skimage)是一個圖像處理庫,支持顏色模式轉換、濾鏡、繪圖、圖像處理、特徵檢測等多種功能 |
★★ |
imageop |
[Python標準庫] Python自帶的函數,對圖像基本操做,包括裁剪、縮放、模式轉換 |
★ |
colorsys |
[Python標準庫] Python自帶的函數,實現不一樣圖像色彩模式的轉換 |
★ |
imghdr |
[Python標準庫] Python自帶的函數,返回圖像文件的類型 |
★ |
08 音頻處理
音頻處理主要適用於基於聲音的處理、分析和建模,主要應用於語音識別、語音合成、語義理解等。
庫/函數 |
描述 |
推薦度 |
TimeSide |
[第三方庫] TimeSide是一個可以進行音頻分析、成像、轉碼、流媒體和標籤處理的Python框架,能夠對任何音頻或視頻內容很是大的數據集進行復雜的處理 |
★★★ |
audiolazy |
[第三方庫]audiolazy是一個用於實時聲音數據流處理的庫,支持實時數據應用處理、無限數據序列表示、數據流表示等 |
★★ |
pydub |
[第三方庫] pydub支持多種格式聲音文件,可進行多種信號處理(例如壓縮、均衡、歸一化)、信號生成(例如正弦、方波、鋸齒等)、音效註冊、靜音處理等 |
★★★ |
audioop |
[Python標準庫] Python自帶的函數,可實現對聲音片斷的一些經常使用操做 |
★★ |
tinytag |
[第三方庫] tinytag用於讀取多種聲音文件的元數據,涵蓋MP三、OGG、OPUS、MP四、M4A、FLAC、WMA、Wave等格式 |
★★ |
aifc |
[Python標準庫] Python自帶的函數,讀寫AIFF和AIFC文件 |
★ |
sunau |
[Python標準庫] Python自帶的函數,讀寫Sun AU文件 |
★ |
wave |
[Python標準庫] Python自帶的函數,讀寫WAV文件 |
★★ |
chunk |
[Python標準庫] Python自帶的函數,讀取EA IFF 85塊格式的文件 |
★ |
sndhdr |
[Python標準庫] Python自帶的函數,返回聲音文件的類型 |
★ |
ossaudiodev |
[Python標準庫]該模塊支持訪問OSS(開放聲音系統)音頻接口 |
★★★ |
09 數據挖掘/機器學習/深度學習
庫/函數 |
描述 |
推薦度 |
Scikit-Learn |
[第 三方庫]scikit-learn(也稱SKlearn)是一個基於Python的機器學習綜合庫,內置監督式學習和非監督式學習機器學習方法,包括各類 迴歸、聚類、分類、流式學習、異常檢測、神經網絡、集成方法等主流算法類別,同時支持預置數據集、數據預處理、模型選擇和評估等方法,是一個很是完整、流 行的機器學習工具庫 |
★★★ |
TensorFlow |
[第三方庫]TensorFlow 是谷歌的第二代機器學習系統,內建深度學習的擴展支持,任何可以用計算流圖形來表達的計算,均可以使用 TensorFlow |
★★★ |
NuPIC |
[第三方庫] NuPIC是一個以HTM(分層時間記憶)學習算法爲工具的機器智能平臺。NuPIC適合於各類各樣的問題,尤爲適用於檢測異常和預測應用 |
★★★ |
Orange |
[第三方庫] Orange經過圖形化操做界面,提供交互式數據分析功能,尤爲適用於分類、聚類、迴歸、特徵選擇和交叉驗證工做 |
★★★ |
theano |
[第三方庫] Theano是很是成熟的深度學習庫。它與Numpy緊密集成,支持GPU計算、單元測試和自我驗證 |
★★★ |
keras |
[第三方庫] Keras是一個用Python編寫的高級神經網絡API,可以運行在TensorFlow或者Theano之上,它的開發重點是實現快速實驗 |
★★ |
neurolab |
[第三方庫] Neurolab是具備靈活網絡配置和Python學習算法的基本神經網絡算法庫。它包含經過遞歸神經網絡(RNN)實現的不一樣變體,該庫是同類RNN API中最好的選擇之一 |
★★ |
PyLearn2 |
[第三方庫] PyLearn2是基於Theano的深度學習庫,它旨在提供極大的靈活性,並使研究人員能夠進行自由可控制,參數和屬性的靈活、開放配置是亮點 |
★★★ |
OverFeat |
[第三方庫] OverFeat是一個深度學習庫,主要用於圖片分類、定位物體檢測 |
★★ |
Pyevolve |
[第三方庫] Pyevolve是一個完整的遺傳算法框架,也支持遺傳編程 |
★★ |
Caffe |
[第三方庫] Cafffe是一個深度學習框架,主要用於計算機視覺,它對圖像識別的分類具備很好的應用效果 |
★★ |
10 數據可視化
數據可視化主要用於作數據結果展現、數據模型驗證、圖形交互和探查等方面。
庫/函數 |
描述 |
推薦度 |
Matplotlib |
[第三方庫] Matplotlib是Python的2D繪圖庫,它以各類硬拷貝格式和跨平臺的交互式環境生成出版質量級別的圖形,開發者能夠僅須要幾行代碼,即可以生成多種高質量圖形 |
★★★ |
seaborn |
[第三方庫] Seaborn是在Matplotlib的基礎上進行了更高級的API封裝,它能夠做爲Matplotlib的補充 |
★★ |
bokeh |
[第三方庫] Bokeh是一種交互式可視化庫,能夠在WEB瀏覽器中實現美觀的視覺效果 |
★★★ |
Plotly |
[第三方庫] Plotly提供的圖形庫能夠進行在線WEB交互,並提供具備出版品質的圖形,支持線圖、散點圖、區域圖、條形圖、偏差條、框圖、直方圖、熱圖、子圖、多軸、極座標圖、氣泡圖、玫瑰圖、熱力圖、漏斗圖等衆多圖形 |
★★★ |
VisPy |
[第三方庫] VisPy是用於交互式科學可視化的Python庫,旨在實現快速,可擴展和易於使用 |
★★ |
PyQtGraph |
[第三方庫] PyQtGraph是一個創建在PyQt4 / PySide和numpy之上的純Python圖形和GUI庫,主要用於數學/科學/工程應用 |
★★ |
ggplot |
[第三方庫] ggplot是用Python實現的圖形輸出庫,相似於 R中的圖形展現版本 |
★★★ |
交互學習和集成開發主要用來作Python開發、調試和集成之用,包括Python集成開發環境和IDE。
庫/函數 |
描述 |
推薦度 |
IPython |
[第三方庫]IPython 是一個基於Python 的交互式shell,比默認的Python shell 好用得多,支持變量自動補全、自動縮進、交互式幫助、魔法命令、系統命令等,內置了許多頗有用的功能和函數 |
★★★ |
Elpy |
[第三方庫] Elpy是Emacs用於Python的開發環境,它結合並配置了許多其餘軟件包,它們都是用Emacs Lisp和Python編寫的 |
★★ |
PTVS |
[第三方庫] Visual Studio 的 Python 工具 |
★★ |
PyCharm |
[外 部工具]PyCharm帶有一整套能夠幫助用戶在使用Python語言開發時提升其效率的工具,好比調試、語法高亮、項目管理、代碼跳轉、智能提示、自動 完成、單元測試、版本控制並可集成IPython、系統終端命令行等,在PyCharm裏幾乎就能夠實現全部有關Python工做的所有過程 |
★★★ |
LiClipse |
[外部工具] LiClipse是基於Eclipse的免費多語言 IDE,經過其中的PyDev可支持 Python開發應用 |
★★ |
Spyder |
[外部工具] Spyder是一個開源的Python IDE,由IPython和衆多流行的Python庫的支持,是一個具有高級編輯、交互式測試、調試以及數字計算環境的交互式開發環境 |
★★ |
其餘Python協同數據工做工具指除了上述主題之外,其餘在數據工做中經常使用的工具或庫。
庫/函數 |
描述 |
推薦度 |
tesseract-ocr |
[外部工具]這是一個Google支持的開源OCR圖文識別項目,支持超過200種語言(包括中文),並支持自定義訓練字符集,支持跨Windows、Linux、Mac OSX 多平臺使用 |
★★★ |
RPython |
[第三方庫]R集成庫 |
★★★ |
matpython |
[第三方庫]MATLAB集成庫 |
★★★ |
Lunatic Python |
[第三方庫]Lua集成庫 |
★★ |
PyCall.jl |
[第三方庫]Julia集成庫 |
★★ |
PySpark |
[第三方庫] Spark提供的Python API |
★★★ |
dumbo |
[第三方庫] 這個模塊可讓Pythoner輕鬆的編寫和運行 Hadoop 程序,程序版本比較早,能夠做爲參考 |
★★ |
dpark |
[第三方庫]Python對Spark的克隆版本,類MapReduce框架 |
★★ |
streamparse |
[第三方庫] Streamparse容許經過Storm對實時數據流運行Python代碼 |
★★★
|
文章摘自:http://www.360doc.com/content/18/0529/21/3175779_758069027.shtml