推薦幾個非常實用的 Python 庫

2021-03-06 編程派


Python 是一個很棒的語言。它是世界上發展最快的程式語言之一。它一次又一次地證明了在開發人員職位中和跨行業的數據科學職位中的實用性。整個 Python 及其庫的生態系統使它成為全世界用戶(初學者和高級用戶)的合適選擇。它的成功和流行的原因之一是它強大的第三方庫的集合,這些庫使它可以保持活力和高效。

在本文中,我們會研究一些用於數據科學任務的 Python 庫,而不是常見的比如 panda、scikit-learn 和 matplotlib 等的庫。儘管像 panda 和 scikit-learn 這樣的庫,是在機器學習任務中經常出現的,但是了解這個領域中的其它 Python 產品總是很有好處的。

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'

### 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())


imbalanced-learn

可以看出,當每個類的樣本數量基本相同時,大多數分類算法的效果是最好的,即需要保持數據平衡。但現實案例中大多是不平衡的數據集,這些數據集對機器學習算法的學習階段和後續預測都有很大影響。幸運的是,這個庫就是用來解決此問題的。它與 scikit-learn 兼容,是 scikit-lear-contrib 項目的一部分。下次當你遇到不平衡的數據集時,請嘗試使用它。

安裝:

pip install -U imbalanced-learn

# 或者

conda install -c conda-forge imbalanced-learn

例子:

使用方法和例子請參考文檔。

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.'
Fuzzywuzzy

這個庫的名字聽起來很奇怪,但是在字符串匹配方面,fuzzywuzzy 是一個非常有用的庫。可以很方便地實現計算字符串匹配度、令牌匹配度等操作,也可以很方便地匹配保存在不同資料庫中的記錄。

安裝:

$ pip install fuzzywuzzy

例子:

from fuzzywuzzy import fuzz
from fuzzywuzzy import process

# 簡單匹配度

fuzz.ratio("this is a test", "this is a test!")
97

# 模糊匹配度
fuzz.partial_ratio("this is a test", "this is a test!")
 100

更多有趣例子可以在 GitHub 倉庫找到。

PyFlux

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

安裝

pip install pyflux

例子

詳細用法和例子請參考官方文檔。

Ipyvolume

結果展示也是數據科學中的一個重要方面。能夠將結果進行可視化將具有很大優勢。IPyvolume 是一個可以在 Jupyter notebook 中可視化三維體和圖形(例如三維散點圖等)的 Python 庫,並且只需要少量配置。但它目前還是 1.0 之前的版本階段。用一個比較恰當的比喻來解釋就是:IPyvolume 的 volshow 對於三維數組就像 matplotlib 的 imshow 對於二維數組一樣好用。可以在這裡獲取更多。

使用 pip

$ pip install ipyvolume

使用 Conda/Anaconda

$ conda install -c conda-forge ipyvolume

例子

Dash

Dash 是一個高效的用於構建 web 應用程式的 Python 框架。它是在 Flask、Plotly.js 和 React.js 基礎上設計而成的,綁定了很多比如下拉框、滑動條和圖表的現代 UI 元素,你可以直接使用 Python 代碼來寫相關分析,而無需再使用 javascript。Dash 非常適合構建數據可視化應用程式。然後,這些應用程式可以在 web 瀏覽器中呈現。用戶指南可以在這裡獲取。

安裝

pip install dash==0.29.0  # 核心 dash 後端
pip install dash-html-components==0.13.2  # HTML 組件
pip install dash-core-components==0.36.0  # 增強組件
pip install dash-table==3.1.3  # 交互式 DataTable 組件(最新!)

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

Gym

OpenAI 的 Gym 是一款用於增強學習算法的開發和比較工具包。它兼容任何數值計算庫,如 TensorFlow 或 Theano。Gym 庫是測試問題集合的必備工具,這個集合也稱為環境 —— 你可以用它來開發你的強化學習算法。這些環境有一個共享接口,允許你進行通用算法的編寫。

安裝

pip install gym

例子這個例子會運行CartPole-v0環境中的一個實例,它的時間步數為 1000,每一步都會渲染整個場景。

總結

以上這些有用的數據科學 Python 庫都是我精心挑選出來的,不是常見的如 numpy 和 pandas 等庫。如果你知道其它庫,可以添加到列表中來,請在下面的評論中提一下。另外別忘了先嘗試運行一下它們。

原文地址:https://dwz.cn/FBj1Ktxv
譯文連結:https://dwz.cn/moEU7xzr

回復下方「關鍵詞」,獲取優質資源

回復關鍵詞「 pybook03」,立即獲取主頁君與小夥伴一起翻譯的《Think Python 2e》電子版

回復關鍵詞「入門資料」,立即獲取主頁君整理的 10 本 Python 入門書的電子版

回復關鍵詞「m」,立即獲取Python精選優質文章合集

回復關鍵詞「book 數字」,將數字替換成 0 及以上數字,有驚喜好禮哦~

題圖:pexels,CC0 授權。

相關焦點

  • 推薦一些能提高生產力的 Python 庫
    ,其意就是想了解下有哪些非常好用的提高生產力的 Python 庫。一些回答直接把 awesome-python 貼過來,點讚非常多,當然多歸多,但是裡面很多都是些過期的或者其實沒太有什麼價值的庫,反而會增加了挑選庫的成本。我大體上把一些回答過了一遍,另外結合自己平時了解的內容,稍微對一些基礎生產力庫做了簡單的梳理,在這裡分享給大家。
  • 非常實用的Python庫
    整個 Python 及其庫的生態系統使它成為全世界用戶(初學者和高級用戶)的合適選擇。它的成功和流行的原因之一是它強大的第三方庫的集合,這些庫使它可以保持活力和高效。在本文中,我們會研究一些用於數據科學任務的 Python 庫,而不是常見的比如 panda、scikit-learn 和 matplotlib 等的庫。
  • 推薦一些相見恨晚的 Python 庫 「二」
    上一篇文章 推薦一些相見恨晚的 Python 庫 「一」對 Awesome Python 做了個簡單的介紹,同時匯總了一部分優秀的
  • python推薦 | 面向地學領域的Python庫匯總
    •二進位:numpy可以處理二進位數據,同時藉助python內置struct模塊可以非常方便的處理二進位格式數據。上述介紹的一些庫,很多僅支持簡單的數據讀取和寫入操作,不支持更多計算操作。如果要對空間數據進行插值,可能就無法滿足了。
  • 這樣安裝 Python 庫才是最正確的哦~
    平常我都是直接執行 pip install 安裝的第三方庫,很多教程也是這麼介紹的,一直以來我都認為這是標準的、正確的安裝 Python 第三方庫的姿勢。直到我最近看到Python核心開發者Brett Cannon 寫的一篇文章。簡單總結來說,他認為其實最正確的安裝方式是使用 python-m pip 來執行 pip 命令,無論什麼情況下均是如此。
  • 2019 必知的 10 大頂級 python 庫
    在本文中,我們將討論一些 python 中的頂級庫,開發人員可以使用這些庫在現有的應用程式中應用、清洗和表示數據,並進行機器學習研究。然而,最重要的一點是它有大量的庫供用戶使用。python 的簡單性吸引了許多開發人員為機器學習創建新的庫。由於有大量的庫,python 在機器學習專家中變得非常流行。所以,這裡要介紹的第一個庫是 TensorFlow。
  • Python常用庫大全
    IPython – 功能豐富的工具,非常有效的使用交互式 Python。 bpython- 界面豐富的 Python 解析器。 ptpython – 高級交互式Python解析器, 構建於python-prompt-toolkit 之上。
  • 這幾個常用的python庫你需要知道
    python可以說是近幾年最火熱、最實用的、最容易上手的工具之一了。功能強大、應用廣泛,可以幫你搜集工作數據,還能幫你下載音樂,電影,於是就掀起了一波學習python的大潮,小編也毫不猶豫的加入了。但是對於向小編一樣的小白來說,剛開始學習還是有些困難的,需要首先了解python的一些基礎知識。所以小編就整理了一些常用的python庫,希望對正在學習python的小夥伴有所幫助。1.MatplotlibMatplotlib是一個用於創建二維圖和圖形的底層庫。藉由它的幫助,你可以構建各種不同的圖標,從直方圖和散點圖到費笛卡爾坐標圖。
  • 每個python人都離不開的12個python庫
    如果說python能取得今天的成就,一方面是它簡介的語法,更重要的一方面就是它豐富的第三方庫,可以毫不誇張的說,只要你能想到的任何一個功能模塊,都有對應的python庫,可以說正是因為有了豐富的python庫,python才發展得如此迅速,下面我們來看看python人最常用的20個python
  • 9月推薦 | 從近1000篇Python文章中精選Top10
    前言本次推薦的系列文章涉及: Python 小技巧、Socket 編程、Disguise(偽裝)、Macro 宏、PostgreSQL、數據科學中的數學基礎知識、谷歌面試問題講解、員工流失預測問題以及 Discord 機器人。
  • 十大被低估的Python自帶庫!
    大家在學習python的過程中,都會了解到python的一個強大的功能在於各種強大的第三方庫函數
  • 常用python機器學習庫總結
    眾所周知現在人工智慧非常的火熱,機器學習也算是人工智慧中的一個領域,在其中有一塊是對文本進行分析,對數據進行深入的挖掘提取一些特徵值,然後用一些算法去學習,訓練,分析,甚至還能預測,我們就來看看python有哪些機器學習庫吧!1.
  • 7個最佳的學習Python編程的開源庫
    -44a3a7accb44很多夥伴們在學習Python的過程中,更傾向於在Github上尋找Python學習資料,今天就和大家分享Github上7個絕佳的Python編程學習的開源庫:這個存儲庫一共有19本Jupyter筆記本。
  • Python-random庫的基本應用
    偽隨機數:計算機中通過採用梅森旋轉算法生成的(偽)隨機序列元素,python中用於生成偽隨機數的函數庫是random概述這裡放幾個random庫常用函數:
  • 5個奇妙的Python庫
    點擊上方「深度學習愛好者」,選擇加"星標"或「置頂」重磅乾貨,第一時間送達引言Python是一個非常神奇語言,無論我們要做什麼任務,python都有其解決方案,無論它與機器學習,數據可視化Python為各種簡單和困難的任務提供了大量的庫。大多數人都知道類似Pandas,Numpy,Matplotlib,Seaborn,OpenCV,Plotly這樣的庫,還有很多其他在機器學習中使用的庫。但是對於很多小的需求,python同樣有很多奇妙的庫。本文將分享一些在項目中遇到的一些庫,這些庫具有很高的可移植性,對於每個庫我都將用一個代碼段來介紹。
  • 推薦幾個超實用網站
    今天給大家推薦幾個鮮為人知的黑科技網站! 1、anyknew 這是一款可以了解所有網站最新熱點事件的神器。 集合所有新聞網站於一體,展示每個網站每天的實時熱榜,排名,比如百度,微博,知乎的熱榜一目了然。
  • 2019年必知的10大頂級Python庫 | 網際網路數據資訊網-199IT | 中文...
    然而,最重要的一點是它有大量的庫供用戶使用。python 的簡單性吸引了許多開發人員為機器學習創建新的庫。由於有大量的庫,python 在機器學習專家中變得非常流行。所以,這裡要介紹的第一個庫是 TensorFlow。1.TensorFlow
  • python機器學習:常用庫的介紹及安裝
    1、為了學習方便,建議大家安裝Anaconda(由於平臺不讓給出網站連結,所以具體連結直接百度搜一下就可以得到),為什麼建議使用這個軟體呢,因為安裝了這個軟體後本身就自帶了IPython、Numpy、pandas,scikit-learn等庫,不用你去在一步一步的去安裝其他的庫;並且該軟體兼容性不錯,可以在Mac OS, windows和linux上運行,一勞永逸,非常方便。
  • 可能是最通俗易懂的Python入門資料整理和最優學習路線推薦.
    第一個部分是書籍的推薦,第二個部分是視頻教程的推薦,第三個部分是練手項目的推薦。在文章的最後我會根據我推薦的三個部分,挑選其中的一些項目,組合在一起推薦一個適合初學者的最優學習路線。還學不會Python你打我。文章末尾會給出本文提及的所有教程的連結或下載地址。
  • 2017年數據科學15個最好用的Python庫
    python庫。SciPyStack是一個專門為用Python處理科學計算而設計的軟體集(注意不要把SciPy Stack和SciPy庫搞混啦;SciPy庫只是SciPy Stack的一部分)。 讓我們來看看SciPy Stack裡面都包括什麼:SciPy Stack其實相當龐大,包括了十幾個庫。其中NumPy庫是它的核心庫(特別是最重要的幾個庫)中的明星。