1. 程式人生 > >11個實用但你可能不知道的Python程式庫

11個實用但你可能不知道的Python程式庫

目前,網上已有成千上萬個Python包,但幾乎沒有人能夠全部知道它們。單單PyPi上就有超過47000個包列表。

現在,越來越多的資料科學家開始使用Python,雖然他們從pandasscikit-learnnumpy中獲得了不少好處,但我仍想向他們介紹一些年長且非常實用的Python庫。在本文中,我將列一些不太知名的庫,即使你是經驗豐富的Python的開發者,也值得過來一看。

Dolorean是一個非常酷的日期/時間庫。類似JavaScript的moment,擁有非常完善的技術文件。

from delorean import Delorean
EST = "US/Eastern"
d = Delorean(
timezone=EST)

你可能從未聽過該庫,因為它託管在GoogleCode。prettytable主要用於在終端或瀏覽器端構建很好的輸出。

from prettytable import PrettyTable
table = PrettyTable(["animal", "ferocity"])
table.add_row(["wolverine", 100])
table.add_row(["grizzly", 87])
table.add_row(["Rabbit of Caerbannog", 110])
table.add_row(["cat", -1])
table.add_row(
["platypus", 23]) table.add_row(["dolphin", 63]) table.add_row(["albatross", 44]) table.sort_key("ferocity") table.reversesort = True +----------------------+----------+ | animal | ferocity | +----------------------+----------+ | Rabbit of Caerbannog | 110 | | wolverine |
100 | | grizzly | 87 | | dolphin | 63 | | albatross | 44 | | platypus | 23 | | cat | -1 | +----------------------+----------+

好吧,我也是首次安裝該庫。這是一款非常瘦小的語言轉換庫,支援15種語言。

from snowballstemmer import EnglishStemmer, SpanishStemmer
EnglishStemmer().stemWord("Gregory")
# Gregori
SpanishStemmer().stemWord("amarillo")
# amarill

4.wget

你是否還記得,每一次都會因為某個目的而編寫網路爬蟲工具,以後再也不用了,因為wget就足夠你使用了。wget是Python版的網路爬蟲庫,簡單好用。

import wget
wget.download("http://www.cnn.com/")
# 100% [............................................................................] 280385 / 280385

備註:linux和osx使用者這樣用:from
sh import wget。但是,wget模組還有一個更好的argument handline。

5.PyMC

scikit-learn似乎是所有人的寵兒,但在我看來,PyMC更有魅力。PyMC主要用來做Bayesian分析。

from pymc.examples import disaster_model
from pymc import MCMC
M = MCMC(disaster_model)
M.sample(iter=10000, burn=1000, thin=10)
[-----------------100%-----------------] 10000 of 10000 complete in 1.4 sec

6.sh

sh庫用來將shell命令作為函式匯入到Python中。在bash中使用是非常實用的,但是在Python中不容易記住怎麼使用(即遞迴搜尋檔案)。

from sh import find
find("/tmp")
/tmp/foo
/tmp/foo/file1.json
/tmp/foo/file2.json
/tmp/foo/file3.json
/tmp/foo/bar/file3.json

Fuzzywuzzy是一個可以對字串進行模糊匹配的庫,大家有空可以去檢視原始碼

from fuzzywuzzy import fuzz
fuzz.ratio("Hit me with your best shot", "Hit me with your pet shark")
# 85

progressbar是一個進度條庫,該庫提供了一個文字模式的progressbar。

from progressbar import ProgressBar
import time
pbar = ProgressBar(maxval=10)
for i in range(1, 11):
    pbar.update(i)
    time.sleep(1)
pbar.finish()
# 60% |########################################################                                      |

colorama主要用來給文字新增各種顏色,並且非常簡單易用。

10.uuid

uuid是基於Python實現的UUID庫,它實現了UUID標註的1,3,4和5版本,在確保唯一性上真的非常方便。

import uuid
print uuid.uuid4()
# e7bafa3d-274e-4b0a-b9cc-d898957b4b61

bashplotlib是一個繪相簿,它允許你使用stdin繪製柱狀圖和散點圖等。

$ pip install bashplotlib
$ scatter --file data/texas.txt --pch x

相關推薦

11實用可能知道Python程式

目前,網上已有成千上萬個Python包,但幾乎沒有人能夠全部知道它們。單單PyPi上就有超過47000個包列表。 現在,越來越多的資料科學家開始使用Python,雖然他們從pandas,scikit-learn,numpy中獲得了不少好處,但我仍想向他們介紹一些年長且非常實用的Python庫。在本文中,

14 可能知道的 JavaScript 調試技巧

這樣的 自定義樣式 哪些 事情 執行 script gun lin 每次 了解你的工具可以極大的幫助你完成任務。盡管 JavaScript 的調試非常麻煩,但在掌握了技巧 (tricks) 的情況下,你依然可以用盡量少的的時間解決這些錯誤 (errors) 和問題 (b

vue技術分享之可能知道的7祕密

本文是vue原始碼貢獻值Chris Fritz在公共場合的一場分享,覺得分享裡面有不少東西值得借鑑,雖然有些內容我在工作中也是這麼做的,還是把大神的ppt在這裡翻譯一下,希望給朋友帶來一些幫助。 一、善用watch的immediate屬性 這一點我在專案中也是這麼寫的。例如有請求需要再也沒初

可能知道的14JavaScript除錯技巧

瞭解你的工具可以在完成任務的過程中發揮重大作用。儘管傳言 JavaScript 難以除錯,但是如果你掌握了一些除錯技巧,那麼你將會花費更少的時間來解決這些錯誤。 我們已經列出了14個你可能不知道的除錯技巧,但可能要記住,這樣下次你需要除錯 JavaScript

14 可能知道的 JavaScript 除錯技巧

瞭解你的工具可以極大的幫助你完成任務。儘管 JavaScript 的除錯非常麻煩,但在掌握了技巧 (tricks) 的情況下,你依然可以用盡量少的的時間解決這些錯誤 (errors) 和問題 (bugs) 。 我們會列出14個你可能不知道的除錯技巧, 但是一旦知道了,你就會迫不及待的想在下次需要除錯 Jav

關於 fir.im 可能知道實用小工具

大家可能都知道 fir.im 是做測試發包的,上傳你的 IPA/APK, 測試使用者可以通過一個短連結和二維碼就可快速安裝測試。 除了基本的發包功能即應用上傳下載外, fir.im 還為提高發包體驗提供了一系列實用工具。 自動獲取 UDID ,別再為

vue技術分享之可能知道的7秘密

med 動態 targe lod immediate 前端開發 class elements 傳遞 本文是vue源碼貢獻值Chris Fritz在公共場合的一場分享,覺得分享裏面有不少東西值得借鑒,雖然有些內容我在工作中也是這麽做的,還是把大神的ppt在這裏翻譯一下,希望給

Node.js的Buffer那些可能知道的用法

ins min 來看 imu write work and sse ase 在大多數介紹Buffer的文章中,主要是圍繞數據拼接和內存分配這兩方面的。比如我們使用fs模塊來讀取文件內容的時候,返回的就是一個Buffer: fs.readFile(‘filename‘, fu

js--函數參數(可能知道的參數傳遞)

多個參數 函數的調用 調用函數 tle 進行 post span nts 復制 前言: 函數分為有參有返回值,有參無返回值,無參無返回值,無參有返回值;那麽對於無參數的函數你想使用函數的調用怎麽辦呢?如果你想封裝一個代碼,實現多種功能,但是形參大於實參或者實參大於形參又該如

可能知道的viewport

setw 變化 idt content 移動前端 其它 網頁 offset cli 概述 前幾天偶然看到一個pc端網頁,發現用手機打開竟然同比縮放了,作為一個前端從業者,我自然想要弄清它到底是怎麽縮放的。之後查了它的meta信息,css和js,發現沒有任何兼容手機端的代碼,

Oracle delete操作隱藏著可能知道的秘密

tro 移動 準備 明顯 數據 aps AC 註意 nav 一 現象描述Delete是oracle數據庫中的常用操作,尤其是在自動化測試中,初始化環境、前置準備都不可避免的進行增刪操作,但持續一時間後,可能會碰到表空間不足這類報錯現象,這就不禁納悶兒了,明明插入數據前會有刪

可能知道的一些Go Packages知識

return 有一個 匿名 一點 計算 展示 rgs 實現 mem 關於Go Package關於Go Package Go Packages 主要用來把相關的functions, variables, 和constants 組織到一起,這樣你就可以很方便的遷移Package

可能知道的setInterval的坑

ajax請求 之前 以及 while gis false class 就會 tin 之前印象中一直記得setInterval有一些坑,但是一直不是很清楚那些坑是什麽。今天去摸索了下之後,決定來做個記錄以免自己忘記,也希望讓更多人了解到這個坑。 setInterval會無視

可能知道的iview可編輯表格與表格驗證

操作 新增 ica 刪除 ont ros pan 表格 mic https://dev.iviewui.com/articles/1040179759335739392 然後在表格有其他操作,比如新增或刪除行時將數據賦給List,提交數據時,用的也是臨時數據,原來的Li

關於os.popen可能知道

一 前言 使用python執行一些命令或呼叫第三方工具是比較常見的情況,實現的方法也很多,如os.system(),os.popen()、subprocess模組中的函式等等,本文主要介紹一下os.popen(),可能隱藏著你不曾接觸的知識點,同時會結合例項進行說明,便於理解。   二 語

可能知道的golang知識點

讀書筆記式,持續更新中... 陣列切片 如何計算長度和容量 函式 append 會智慧地處理底層陣列的容量增長。在切片的容量小於 1000 個元素時,總是會成倍地增加容量。一旦元素個數超過 1000,容量的增長因子會設為 1.25,也就是會每次增加 25%的容量。隨著語言的演化,這種增長演算法

前端演算法題 | 這道題效率最高的演算法,可能知道

    尋找最長的不含有重複字元的子串 可能看標題不會明白這個題到底什麼意思,來看看下面的例子:   abcabcbb  ➡  abc ➡  3 bbbb  ➡  b  

大資料Hadoopx之HDFS模組中那些可能知道的小知識!

再給大家分享一些小知識,一起來瞧瞧吧! 一、namenode & secondarynamenode    1)namenode啟動(namenode格式化時會建立fsimage,edits兩個檔案,如果不是第一次啟動,會直接載入這兩個檔案到記憶體)。   2)secondary

淺談 Java 10 ,可能知道的五件事

Java 9出現之後僅僅過去6個月,現在Java 10已經在敲門了。與它的版本號一樣,Java 10提供了10個新特性,本文提供了我認為最重要的5個特性(您可以在Open JDK 10專案頁面上檢視它們)。區域性變數型別推斷是有爭議的熱點,但Java 10在JVM中的垃圾收集和容器識別上帶來

可能知道的printf

前言 printf可能是我們在學習C語言的過程中最早接觸的庫函數了。其基本使用想必我們都已經非常清楚了。但是下面的這些情況你是否已經清楚地知道了呢? 示例程式 我們來看一個示例程式,看看你能否對下面的結果輸出有非常清晰的認識。 #include <stdio.h>int