讓你事半功倍的小眾 Python 庫

wget

提取資料,特別是從網路中提取資料是資料科學家的重要任務之一。Wget 是一個免費的工具,用於以非互動式方式從 Web 上下載檔案。它支援 HTTP、HTTPS 和 FTP 協議,通過 HTTP 代理進行檢索。由於它是非互動式的,即使使用者沒有登入,它也可以在後臺工作。所以,如果你想下載一個網站或一個頁面上的所有圖片,wget 會幫助你。

安裝:

$ pip INSTALL wget

示例:

importwget

url = ‘http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3’

filename = wget.download(url)

100% […………………………………………] 3841532/ 3841532

filename

‘razorback.mp3’

Pendulum

對於那些在 python 中被處理datetimes困擾的人來說,Pendulum 是個好選擇。它是一個 Python 包,用於簡化 datetimes 操作。它是 Python「本機」類(native class)的代替。更多內容,請參閱文件:https://um.eustace.io/docs/# installation。

安裝:

$ pip install pendulum

示例:

importwget

url = ‘http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3’

filename = wget.download(url)

100% […………………………………………] 3841532/ 3841532

filename

‘razorback.mp3’

IMBALANCED-LEARN

可以看出,當每個類的樣本數量相等即平衡時,大多數分類演算法的工作效果最好。但現實生活中充滿了不平衡的資料集,這些資料集對機器學習的學習階段和後續預測都有影響。建立這個庫是為了解決這個問題。它與 scikit-learn 相容,並且是 scikit-learn-contrib 專案的一部分。下次遇到不平衡的資料集時,可以嘗試一下。

安裝:

pip install -U imbalanced-learn

# or

conda install -c conda-forge imbalanced-learn

示例:

有關用法和示例,請參考:http://imbalancedlearn.org/en/stable/api.html。

FLASHTEXT

在 NLP 任務中,清理文字資料通常需要替換句子中的關鍵詞或從句子中提取關鍵詞。通常,這樣的操作可以用正則表示式來完成,但是如果要搜尋的詞彙量過大,操作就會變得麻煩。Python 中基於 FlashText 演算法的 FlashText 模組,為這種情況提供了一個合適的替代方案。FlashText 最大的優點是搜尋詞數量不影響執行時長。更多相關資訊請見:https://flashtext.readthedocs.io/en/latest/#。

安裝:

$ pip install flashtext

示例

提取關鍵詞:

fromflashtext importkeywordprocessor

keyword_processor = KeywordProcessor()

# keyword_processor.add_keyword(<unclean name>, <standardised name>)

keyword_processor.add_keyword( ‘Big Apple’, ‘New York’)

keyword_processor.add_keyword( ‘Bay Area’)

keywords_found = keyword_processor.extract_keywords( ‘I love Big Apple and Bay Area.’)

keywords_found

[ ‘New York’, ‘Bay Area’]

替換關鍵詞:

keyword_processor.add_keyword( ‘New Delhi’, ‘NCR region’)

new_sentence = keyword_processor.replace_keywords( ‘I love Big Apple and new delhi.’)

new_sentence

‘I love New York and NCR region.’

更多使用示例,請參閱官方文件。

FUZZYWUZZY

雖然名字聽起來很奇怪,但涉及到字串匹配時,fuzzywuzzy 是一個非常有用的庫,可以很容易地實現諸如字串比較比率、token 比率等操作。對於匹配不同資料庫中的記錄也很方便。

安裝:

$ pip install fuzzywuzzy

示例:

fromfuzzywuzzy importfuzz

fromfuzzywuzzy importprocess

# Simple Ratio

fuzz.ratio( “this is a test”, “this is a test!”)

97

# Partial Ratio

fuzz.partial_ratio( “this is a test”, “this is a test!”)

100

更多有趣的例子可以在 GitHub 上找到:https://github.com/seatgeek/fuzzywuzzy。

PYFLUX

時間序列分析是機器學習領域最常見的問題之一。PyFlux 是 Python 中為處理時間序列問題而建立的開源庫。該庫有一系列極好的時間序列模型,包括但不限於 ARIMA、 GARCH 和 VAR 模型。簡而言之,PyFlux 提供了一個時間序列建模的概率方法。值得嘗試。

安裝:

pip install pyflux

示例:

有關用法和示例,請參考:https://pyflux.readthedocs.io/en/latest/index.html。

IPYVOLUME

交流結果是資料科學的一個基本方面。能夠將結果視覺化是一個很大的優勢。IPyvolume 是一個用於在 Jupyter notebook 中視覺化 3d 體積和字形(如 3d 散點圖)的 Python 庫,只需少量配置即可。然而,它目前還處於前 1.0 版。IPyvolume 的 volshow 之於 3d 陣列,就像 matplotlib 的 imshow 之於 2d 陣列一樣。更多相關資訊請見:https://ipyvolume.readthedocs.io/en/latest/?badge=latest。

安裝:

Using pip

$ pip install ipyvolume

Conda/Anaconda

$ conda install -c conda-forge ipyvolume

dash

Dash 是一個用於構建 web 應用程式的高效 Python 框架。它寫在 Flask、Plotly.js 和 React.js 之上,將下拉列表、滑塊和圖形等 UI 元素與你的分析性 Python 程式碼直接相連,無需 java。Dash 非常適合構建資料視覺化應用程式。然後這些應用程式可以在 web 瀏覽器中進行渲染。使用者指南請見:https://dash.plot.ly/。

安裝:

pip install dash== 0.29.0# The core dash backend

pip install dash-html-components== 0.13.2# HTML components

pip install dash-core-components== 0.36.0# Supercharged components

pip install dash-table== 3.1.3# Interactive DataTable component (new!)

示例:

下圖示例顯示了具有下拉功能的高度互動圖。當用戶在下拉列表中選擇一個值時,應用程式程式碼會動態地將 Google Finance 的資料匯出為 Pandas DataFrame。資源:https://gist.github.com/chriddyp/3d2454905d8f01886d651f207e2419f0。

GYM

來自 OpenAI 的 Gym 是一個開發和對比強化學習演算法的工具包。它兼容於任何數值計算庫,如 TensorFlow 或 Theano。Gym 庫是一個測試問題的集合,也被稱為環境——可以用它來計算你的強化學習演算法。這些環境有一個共享的介面,允許你寫通用演算法。

安裝:

pip install gym

示例:

執行環境 CartPole-v0 的 1000 個時間步驟例項,在每個步驟渲染環境。

閱讀其他環境請見:https://gym.openai.com/。

結論

這些是作者為資料科學挑選的實用 python 庫,而非常見的 numpy、panda 等。值得一試

原文連結:https://medium.com/analytics-vidhya/python-libraries-for-data-science-other-than-pandas-and-numpy-95da30568fad

京東熱賣中

凡是在京東購買使用者,將訂單和評價截圖發到郵箱[email protected]

Comments

comments

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *