目前,網上已有成千上萬個Python包,但幾乎沒有人可以所有知道它們。單單 PyPi上就有超過47000個包列表。php
如今,愈來愈多的數據科學家開始使用Python,雖然他們從 pandas, scikit-learn, numpy中得到了很多好處,但我仍想向他們介紹一些年長且很是實用的Python庫。在本文中,我將列一些不太知名的庫,即便你是經驗豐富的Python的開發者,也值得過來一看。html
1) deloreanpython
Dolorean是一個很是酷的日期/時間庫。相似JavaScript的moment,擁有很是完善的技術文檔。linux
1
2
3
|
from
delorean
import
Delorean
EST
=
"US/Eastern"
d
=
Delorean(timezone
=
EST)
|
2) prettytablegit
你可能從未聽過該庫,由於它託管在GoogleCode。prettytable主要用於在終端或瀏覽器端構建很好的輸出。github
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
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
|
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
-
-
-
-
-
-
-
-
-
-
+
|
3.snowballstemmershell
好吧,我也是首次安裝該庫。這是一款很是瘦小的語言轉換庫,支持15種語言。json
1
2
3
4
5
|
from
snowballstemmer
import
EnglishStemmer, SpanishStemmer
EnglishStemmer().stemWord(
"Gregory"
)
# Gregori
SpanishStemmer().stemWord(
"amarillo"
)
# amarill
|
4.wget瀏覽器
你是否還記得,每一次都會由於某個目的而編寫網絡爬蟲工具,之後不再用了,由於wget就足夠你使用了。wget是Python版的網絡爬蟲庫,簡單好用。bash
1
2
3
|
import
wget
# 100% [............................................................................] 280385 / 280385
|
備註:linux和osx用戶這樣用:from sh import wget。可是,wget模塊還有一個更好的argument handline。
5.PyMC
scikit-learn彷佛是全部人的寵兒,但在我看來,PyMC更有魅力。PyMC主要用來作Bayesian分析。
1
2
3
4
5
|
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中不容易記住怎麼使用(即遞歸搜索文件)。
1
2
3
4
5
6
7
|
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是一個能夠對字符串進行模糊匹配的庫,你們有空能夠去 查看源碼。
1
2
3
|
from
fuzzywuzzy
import
fuzz
fuzz.ratio(
"Hit me with your best shot"
,
"Hit me with your pet shark"
)
# 85
|
progressbar是一個進度條庫,該庫提供了一個文本模式的progressbar。
1
2
3
4
5
6
7
8
|
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% |######################################################## |
|
9.colorama
colorama主要用來給文本添加各類顏色,而且很是簡單易用。
10.uuid
uuid是基於Python實現的UUID庫,它實現了UUID標註的1,3,4和5版本,在確保惟一性上真的很是方便。
1
2
3
|
import
uuid
print
uuid.uuid4()
# e7bafa3d-274e-4b0a-b9cc-d898957b4b61
|
11.bashplotlib
bashplotlib是一個繪圖庫,它容許你使用stdin繪製柱狀圖和散點圖等。
1
2
|
$ pip install bashplotlib
$ scatter
-
-
file
<span
id
=
"0_nwp"
style
=
"width: auto; height: auto; float: none;"
><a
id
=
"0_nwl"
href
=
"http://cpro.baidu.com/cpro/ui/uijs.php?adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=18&is_app=0&jk=c83d3b1ac10215a4&k=data&k0=data&kdi0=0&luki=4&n=10&p=baidu&q=06011078_cpr&rb=0&rs=1&seller_id=1&sid=a41502c11a3b3dc8&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1922429&u=http%3A%2F%2Fwww%2Eadmin10000%2Ecom%2Fdocument%2F5893%2Ehtml&urlid=0"
target
=
"_blank"
mpid
=
"0"
style
=
"text-decoration: none;"
><span style
=
"color:#0000ff;font-size:14px;width:auto;height:auto;float:none;"
>data<
/
span><
/
a><
/
span>
/
texas.txt
-
-
pch x
|