盤點那些鮮為人知卻非常實用的Python數據科學庫

2020-02-16     機器學習與數據分析

前言

Python是一門神奇的語言。它是世界上發展最快的程式語言之一。它一次又一次地證明了它在跨行業的開發人員工作角色和數據科學職位上的有用性。Python的整個生態系統及其庫使其成為全世界用戶(初學者和高級用戶)的一個恰當選擇。它的成功和流行的一個原因是它的健壯的庫集的存在,使它如此動態和快速。

在本文中,我們將查看一些用於數據科學任務的Python庫,而不是一些常用的庫,如pandas、scikit-learn、matplotlib等。雖然像pandas和scikit-learn這樣的庫是機器學習居家必備,但是了解這個領域的其他python產品總是好的,因為你不知道什麼時候就會用到。

Wget

數據提取,尤其是從網絡中提取數據,是數據科學家的重要任務之一。Wget是一個免費的工具,用於從Web下載非交互式文件。它支持HTTP、HTTPS和FTP協議,以及通過HTTP代理進行檢索。由於它是非交互式的,所以即使用戶沒有登錄,它也可以在後台工作。所以,下次你想下載一個網站或所有的圖像從一個頁面,wget會幫助你。

如何安裝:

$ pip install wget
import wgeturl = 'http://www.futurecrew.com/skaven/song_files/mp3/razorback.mp3'filename = wget.download(url)100% [................................................] 3841532 / 3841532filename'razorback.mp3'

Pendulum

對於那些在python中使用日期時間時感到沮喪的人來說,鐘擺就在這裡。它是一個用於簡化datetimes操作的Python包。它完全可以替代Python的原生類。深入工作請參閱文檔。

如何安裝:

$ pip install pendulum

舉例:

import pendulumdt_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

imbalanced-learn

事實上,大多數分類算法在每個類的樣本數量幾乎相同的情況下工作得最好。但現實生活中存在大量的不平衡數據集,這些數據集對機器學習算法的學習階段和後續預測都有影響。幸運的是,創建這個庫是為了解決這個問題。它與scikit-learn兼容,是scikit-learn-contrib項目的一部分。下次遇到不平衡的數據集時,請嘗試一下。

如何安裝:

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

FlashText

在NLP任務中清理文本數據通常需要替換句子中的關鍵字或從句子中提取關鍵字。通常,這類操作通常使用正則表達式來完成,但是如果要搜索的術語數量達到數千個,就會變得很麻煩。基於FlashText算法的Python的FlashText模塊為這種情況提供了一個合適的替代方案。FlashText最好的部分是,不管搜索詞的數量是多少,運行時都是一樣的。你可以在這裡了解更多。

如何安裝:

$ pip install flashtext

舉例:

  • 提取關鍵詞
from flashtext import KeywordProcessorkeyword_processor = KeywordProcessor()# keyword_processor.add_keyword(, )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是一個非常有用的庫。可以快速實現諸如字符串比較比率、令牌比率等操作。它還可以方便地匹配保存在不同資料庫中的記錄。

如何安裝:

$ pip install fuzzywuzzy

舉例:

from fuzzywuzzy import fuzzfrom fuzzywuzzy import process# Simple Ratiofuzz.ratio("this is a test", "this is a test!")97# Partial Ratiofuzz.partial_ratio("this is a test", "this is a test!") 100


PyFlux

時間序列分析是機器學習領域最常遇到的問題之一。PyFlux是為處理時間序列問題而顯式構建的Python開源庫。該圖書館擁有一系列優秀的現代時間序列模型,包括但不限於ARIMA、GARCH和VAR模型。總之,PyFlux為時間序列建模提供了一種機率方法。值得嘗試。

如何安裝:

pip install pyflux


Ipyvolume

交流結果是數據科學的一個重要方面。能夠可視化結果是一個很大的優勢。IPyvolume是一個Python庫,用於在Jupyter筆記本中可視化3d卷和符號(例如,3d散點圖),只需要很少的配置和工作。然而,它目前還處於1.0之前的階段。一個很好的類比是這樣的:IPyvolume的volshow之於3d數組,就像matplotlib的imshow之於2d數組。你可以在這裡了解更多。

如何安裝:

Using pip$ pip install ipyvolumeConda/Anaconda$ conda install -c conda-forge ipyvolume


舉例:

體繪製


Dash

Dash是一個用於構建web應用程式的高效Python框架。它是寫在燒瓶上,撲通撲通。和response .js,並將現代UI元素(如下拉框、滑塊和圖形)與您的分析性Python代碼綁定在一起,而不需要javascript。Dash非常適合構建數據可視化應用。然後可以在web瀏覽器中呈現這些應用程式。用戶指南可以在這裡訪問。


如何安裝:

pip install dash==0.29.0  # The core dash backendpip install dash-html-components==0.13.2  # HTML componentspip install dash-core-components==0.36.0  # Supercharged componentspip install dash-table==3.1.3  # Interactive DataTable component (new!)


舉例:

下面的示例顯示了一個具有下拉功能的高度交互式圖形。當用戶在下拉菜單中選擇一個值時,應用程式代碼動態地將來自谷歌Finance的數據導出到panda DataFrame中



Bashplotlib

Bashplotlib是一個python包和命令行工具,用於在終端中生成基本的繪圖。純粹用python編寫,當用戶無法訪問GUI時,可視化數據就變得很方便。

如何安裝:


pip install bashplotlib#or$ git clone [email protected]:glamp/bashplotlib.git$ cd bashplotlib$ python setup.py install

舉例:


scatter --file data/texas.txt --pch .

hist --file data/exp.txt


Colorama

Colorama為Python中的終端輸出著色。它使用標準的ANSI轉義碼來著色和樣式終端輸出。有時候,給終端上的日誌塗上顏色是個好主意,這樣如果有什麼地方出錯,它就會脫穎而出。儘管可以通過使用轉義字符手動著色輸出,但這是一項非常冗長乏味的任務。Colorama提供了一個簡單的解決方案。只需將它包含到腳本中,並添加任何要著色的文本。

如何安裝:

pip install colorama


舉例:

運行以下腳本,看看文本的顏色在不同選項下是如何變化的。

import coloramafrom colorama import Fore, Back, Stylecolorama.init()# Set the color semi-permanentlyprint(Fore.CYAN)print("The Text will appear in cyan until it is reset")print(Style.RESET_ALL)# Colorize a single line and then resetprint(Fore.RED + 'Colorize a single line in RED' + Style.RESET_ALL)# Colorize a single word in the outputprint('You can also colorize a single word' + Back.GREEN + 'words' + Style.RESET_ALL + ' can be highlighted')# Combine foreground and background colorprint(Fore.BLUE + Back.WHITE)print('Foreground, background, and styles can be combined')print("==========            ")print(Style.RESET_ALL)print('Reset everything back to normal.')


總結

這些是我為數據科學挑選的有用的python庫,而不是像numpy、panda之類的常見庫。如果你知道其他可以添加到列表中的,請在下面的評論中提及。不要忘記嘗試它們。

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

文章來源: https://twgreatdaily.com/4M9dWnAB3uTiws8Ki192.html