五大常用數(shù)據(jù)科學(xué)Python庫(kù)
介紹
處理數(shù)據(jù)的過(guò)程消耗了人們?cè)谌粘9ぷ髦械拇罅繒r(shí)間,而且我也經(jīng)歷過(guò)。我不僅處理過(guò)數(shù)值數(shù)據(jù),還處理過(guò)文本數(shù)據(jù),這需要大量的預(yù)處理,可以通過(guò)nltk、textblob和pyldavis等庫(kù)來(lái)幫助。
下面我將討論這些庫(kù)的概述和具體的功能、關(guān)于安裝的代碼,以及如何使用這些有益的庫(kù)的示例。
Pandas
Pandas庫(kù)[3]對(duì)于致力于探索性數(shù)據(jù)分析的數(shù)據(jù)科學(xué)家來(lái)說(shuō)是一個(gè)必不可少的庫(kù)。顧名思義,它使用pandas來(lái)分析你的數(shù)據(jù),或者更具體地說(shuō),pandas數(shù)據(jù)幀。
以下是一些你可以從HTML報(bào)表中訪問(wèn)和查看的功能:
- 類型推斷
- 唯一值
- 缺少值
- 分位數(shù)統(tǒng)計(jì)(例如,中位數(shù))
- 描述性統(tǒng)計(jì)
- 直方圖
- 相關(guān)性(如皮爾遜)
- 文本分析
如何安裝?
使用pip:
- pip install -U pandas-profiling[notebook]
- jupyter nbextension enable --py widgetsnbextension
- 這種方式對(duì)我也很管用:
- pip install pandas-profiling
- import pandas_profiling
例子:
下面是我們可以從profile report功能訪問(wèn)的可視化示例之一。可以看到一個(gè)易于理解的彩色的相關(guān)性可視化圖。

局限性:
如果有一個(gè)大的數(shù)據(jù)集,這個(gè)概要報(bào)告可能需要相當(dāng)長(zhǎng)的時(shí)間。我的解決方案是要么簡(jiǎn)單地使用較小的數(shù)據(jù)集,要么對(duì)整個(gè)數(shù)據(jù)集進(jìn)行采樣。
NLTK
通常與nltk相關(guān)的術(shù)語(yǔ)是NLP,或者自然語(yǔ)言處理,它是數(shù)據(jù)科學(xué)(和其他學(xué)科)的一個(gè)分支,它更容易地包含對(duì)文本的處理。導(dǎo)入nltk之后,你可以更輕松地分析文本。
以下是你可以使用nltk訪問(wèn)的一些功能:
- 標(biāo)記化文本(例如,[“標(biāo)記化”,“文本”])
- 詞性標(biāo)記
- 詞干提取和詞形還原
如何安裝:
- pip install nltk
- import nltk
例子:
- import nltk
- thing_to_tokenize = “a long sentence with words”
- tokens = nltk.word_tokenize(thing_to_tokenize)
- tokens
- returns:
- [“a”, “long”, “sentence”, “with”, “words”]
我們需分開(kāi)每個(gè)單詞,以便對(duì)其進(jìn)行分析。
在某些情況下需要分隔單詞。然后它們可以被標(biāo)記、計(jì)數(shù),機(jī)器學(xué)習(xí)算法的新指標(biāo)可以使用這些輸入來(lái)創(chuàng)建預(yù)測(cè)。利用nltk的另一個(gè)有用的特性是文本可以用于情感分析。情感分析在很多企業(yè)中都很重要,尤其是那些有客戶評(píng)論的企業(yè)。現(xiàn)在我們討論情感分析,讓我們看看另一個(gè)有助于快速情感分析的庫(kù)。
TextBlob
TextBlob[8]與nltk有很多相同的優(yōu)點(diǎn),但是它的情感分析功能非常出色。除了分析之外,它還具有利用樸素貝葉斯和決策樹(shù)支持分類的功能。
以下是你可以使用TextBlob訪問(wèn)的一些功能:
- 標(biāo)記化
- 詞性標(biāo)注
- 分類
- 拼寫(xiě)更正
- 情感分析
如何安裝:
- pip install textblob
- from textblob import TextBlob
例子:
情感分析:
- review = TextBlob(“here is a great text blob about wonderful Data Science”)
- review.sentiment
- returns:
- Sentiment(polarity=0.80, subjectivity = 0.44)
正常浮點(diǎn)范圍為[-1.0,1.0],而積極情感介于[0.0,1.0]之間。
分類:
- from textblob.classifiers import NaiveBayesClassifier
- training_data = [(‘sentence example good one’, ‘pos’), (‘sentence example great two’, ‘pos’), (‘sentence example bad three’, ‘neg’), (‘sentence example worse four’, ‘neg’)]
- testing_data = [(‘sentence example good’, ‘pos’), (‘sentence example great’, ‘pos’)]
- cl = NaiveBayesClassifier(training_data)
你可以使用這個(gè)分類器對(duì)文本進(jìn)行分類,該分類器將返回“pos”或“neg”輸出。
這些來(lái)自textblob的簡(jiǎn)單代碼提供了非常強(qiáng)大和有用的情感分析和分類。
pyLDAvis
另一個(gè)使用NLP的工具是pyLDAvis[10]。它是一個(gè)交互式主題模型可視化工具的庫(kù)。例如,當(dāng)我使用LDA(潛Dirichlet分布)執(zhí)行主題模型時(shí),我通常會(huì)看到單元格中的主題輸出,這可能很難閱讀。然而當(dāng)它出現(xiàn)在一個(gè)很好的視覺(jué)總結(jié)中時(shí),它會(huì)更有益,也更容易消化,就像pyLDAvis一樣。
以下是你可以使用pyLDAvis訪問(wèn)的一些功能:
- 顯示了前30個(gè)最突出的術(shù)語(yǔ)
- 有一個(gè)交互式調(diào)整器,允許你滑動(dòng)相關(guān)性度量
- 顯示x軸上的PC1和y軸上的PC2的熱門(mén)主題
- 顯示與大小對(duì)應(yīng)的主題
總的來(lái)說(shuō),這是一種讓人印象深刻的主題可視化方式,這是其他任何庫(kù)都無(wú)法做到的。
如何安裝:
- pip install pyldavis
- import pyldavis
例子:
為了看到最好的例子,這里有一個(gè)Jupyter Notebook[11]參考資料,它展示了這個(gè)數(shù)據(jù)科學(xué)庫(kù)的許多獨(dú)特和有益的特性: https://nbviewer.jupyter.org/github/bmabey/pyLDAvis/blob/master/notebooks/pyLDAvis_overview.ipynb
NetworkX
這個(gè)數(shù)據(jù)科學(xué)包NetworkX[13],將其優(yōu)勢(shì)集中在生物、社會(huì)和基礎(chǔ)設(shè)施網(wǎng)絡(luò)可視化上。
以下是你可以使用NetworkX訪問(wèn)的一些功能:
- 創(chuàng)建圖形、節(jié)點(diǎn)和邊
- 檢驗(yàn)圖的元素
- 圖結(jié)構(gòu)
- 圖的屬性
- 多重圖
- 圖形生成器和操作
如何安裝:
- pip install networkx
- import networkx
例子:
創(chuàng)建圖形
- import networkx
- graph = networkx.Graph()
你可以與其他庫(kù)協(xié)作,例如matplotlib.pyplot也可以創(chuàng)建圖形的可視化(以數(shù)據(jù)科學(xué)家習(xí)慣于看到的方式)。
總結(jié)
如你所見(jiàn),有很多有用的數(shù)據(jù)科學(xué)庫(kù)可以很容易地訪問(wèn)。本文對(duì)一些探索性的數(shù)據(jù)分析庫(kù)、自然語(yǔ)言處理庫(kù)(NLP)和圖形庫(kù)做了一些說(shuō)明。
我們討論的頂級(jí)數(shù)據(jù)科學(xué)庫(kù)、平臺(tái)、包和模塊包括:
- Pandas Profiling
- NLTK
- TextBlob
- pyLDAvis
- NetworkX