天天看點

Python資料科學“冷門”庫

Python資料科學“冷門”庫

Python是一種神奇的語言。事實上,它是近幾年世界上發展最快的程式設計語言之一,它一次又一次證明了它在開發工作和資料科學立場各行業的實用性。整個Python系統和庫是對于世界各地的使用者(無論是初學者或者進階)都是一個恰當的選擇。其成功和受歡迎的原因之一是它強大的庫,這些庫使其具有動态性和快速性。

在本文中,我們将看到一些除了常用的像pandas、scikit-learn、

matplotlib之外的資料科學任務的Python庫。雖然一看見像pandas,scikit-learn這些庫就讓人腦子浮現出機器學習任務,但了解并學習這個領域的其他python庫總歸是有益的。

1、 Wget

從網頁提取資料是資料科學家的重要任務之一。Wget是一個免費的非互動性的從網上下載下傳檔案的實用工具。它支援HTTP、HTTPS和FTP協定,以及通過HTTP代理檢索。因為它是非互動性的,是以即使使用者沒有登入,也可以在背景工作。是以下次你想下載下傳一個網站或頁面的圖檔,wget可以幫助你。

安裝:
 $ pip install wget                
例子:
 import wget
url = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'
filename = wget.download(url)
100% [................................................] 3841532 / 3841532
filename
'razorback.mp3'                
2、 Pendulum

對于那些在python中使用日期時間感到沮喪的,可以使用Pendulum。它是一個python包,可以緩解日期時間操作,是一個python的原生類替代。如果想深入了解請參考該

文檔

 $ pip install pendulum                
 import pendulum
dt_toronto = pendulum.datetime(2012, 1, 1, tz='America/Toronto')
dt_vancouver = pendulum.datetime(2012, 1, 1, tz='America/Vancouver')
print(dt_vancouver.diff(dt_toronto).in_hours())
3                
3、 imbalanced-learn

我看到過大多數分類算法效果,每個類的樣本數量幾乎是相同的,如balanced。但是現實生活情況下大部分是不平衡資料集,它會影響學習階段和随後的機器學習算法的預測。幸運的是,建立了這個imbalanced庫來解決這個問題。它相容了

scikit-learn

并且是

scikit-learn-contrib

項目的一部分。當下次遇到不平衡資料集,可以嘗試使用這個庫。

 pip install -U imbalanced-learn
#or
conda install -c conda-forge imbalanced-learn                

用法和例子請參考

4、 FlashText

NLP任務中清理文本資料常常需要在句子中換關鍵字或從句子中提取關鍵字。通常,這些操作可以用正規表達式來完成,但如果搜尋方面遇到了數以千計的數量,可能會成為麻煩。Python的FlashText子產品,該子產品基于

FlashText算法

提供了恰當的替代等情況。FlashText最好的部分是運作時間與搜尋詞的數量無關,你可以在

這裡

了解更多。

 $ pip install flashtext                
提取關鍵字
 from flashtext import KeywordProcessor
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.'                     
5、 Fuzzywuzzy

這個名字聽起來确實很奇怪,但在處理字元串比對時,fuzzywuzzy是一個非常有用的庫,可以輕松實作操作,比如字元串比較比率,令牌比率等。它也友善比對儲存在不同資料庫的記錄。

 $ pip install fuzzywuzzy                
 from fuzzywuzzy import fuzz
from fuzzywuzzy import process
# 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 repo

找到更多有趣的例子。

6、 PyFlux

時間序列分析是機器學習領域最常見的問題之一。PyFlux是一個在Python中為了時間序列問題而建立的開源庫。該庫有一個良好的現代時間序列模型包括但不限于ARIMA、GARCH和VAR模型。簡而言之,PyFlux針對時間序列模組化提供了一種機率方法,值得一試。

 pip install pyflux                

用法例子請參考相關

7、 Ipyvolume

結果可視化是資料科學的一個重要方面。能夠可視化結果具有很大的優勢。 IPyvolume是一個Python庫,隻需最少的配置和精力就可以在Jupyter notebook中可視化3d體積和字形(例如3d散點圖)。但是,它目前處于1.0之前的階段。一個很好的比喻是這樣的:IPyvolume的volshow是3d數組而matplotlib的imshow是2d數組。你可以在

讀更多關于它的内容。

 Using pip
$ pip install ipyvolume
Conda/Anaconda
$ conda install -c conda-forge ipyvolume                
動畫
Python資料科學“冷門”庫
立體渲染
Python資料科學“冷門”庫
8、 Dash

Dash是一個用于建構Web應用程式的高效Python架構。它寫在Flask,Plotly.js和React.js之上,并将現有的UI元素(如下拉清單,滑塊和圖形)與你的分析Python代碼聯系起來,而無需使用javascript。Dash非常适合建構資料可視化應用程式,然後可以在Web浏覽器中呈現這些應用程式。使用者指南可在

此處

通路。

安裝
 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财經中的資料動态導出到Pandas DataFram中。

源代碼
Python資料科學“冷門”庫
9、 Gym OpenAI

的Gym是一個用于開發和比較強化學習算法的工具包。它與任何數值計算庫相容,如TensorFlow或Theano。Gym庫是測試問題的必要集合,也稱為環境 – 你可以使用它來訓練強化學習算法。這些環境具有共享接口,允許編寫通用算法。

 pip install gym                

以下是運作環境

CartPole-v0

中1000個步驟的執行個體的例子,在每個步驟渲染環境。

你可以在

了解更多的環境。

結論

這些是我選的對于資料科學有用的python庫,而不是常見的如numpy,pandas等。如果你知道可以添加到清單中的其他庫,請在下面的評論中提及。别忘了嘗試一下。

本文由

阿裡雲雲栖社群

組織翻譯。

文章原标題《python-libraries-for-data-science-other-than-pandas-and-numpy》

作者:

Parul Pandey

  譯者:虎說八道,審校:。

文章為簡譯,更為詳細的内容,請檢視

原文