新聞中心
本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)

創(chuàng)新互聯(lián)建站服務(wù)項目包括陸河網(wǎng)站建設(shè)、陸河網(wǎng)站制作、陸河網(wǎng)頁制作以及陸河網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,陸河網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到陸河省份的部分城市,未來相信會繼續(xù)擴大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!
Python是如今最流行的編程語言之一,這點也給它本身帶來很多好處,其中之一就是,為了方便進行程序開發(fā),它擁有了大量優(yōu)秀的庫,如Pandas、Numpy、Matplotlib、SciPy等。
不過,本文不打算介紹那些以實用為主要“賣點”的庫,而是帶你走進一些極為有趣的庫,這些庫可以展示Python的另一面,也恰恰證明了Python社區(qū)的繁榮發(fā)展。
1. Bashplotlib
Bashplotlib是一個Python庫,使得能夠在命令行stdout環(huán)境中繪制數(shù)據(jù)。老實說,第一次看到這個庫的時候,筆者很疑惑,我們?yōu)槭裁纯赡軙枰@樣的庫?
很快筆者就意識到,當沒有任何可用的GUI時,它可能會很有用。這個情況可不太常見,它引起了筆者的好奇心。我這是一個非常有趣的Python庫。
使用pip就可以很容易地安裝Bashplotlib:
- pipinstall bashplotlib
來看一些例子。在下面的代碼中,導(dǎo)入了numpy來生成一些隨機數(shù)組,當然還有bashplotlib。
- importnumpy as np
- from bashplotlib.histogram import plot_hist
- arr = np.random.normal(size=1000, loc=0, scale=1)
plot_hist是bashplotlib的一個函數(shù),用于在直方圖中繪制一維數(shù)據(jù),就像plt.hist在Matplotlib中的功能一樣。然后,使用Numpy生成一個包含1,000個服從正態(tài)分布的數(shù)字組成的隨機數(shù)組。在此之后,可以很容易地繪制這些數(shù)據(jù):
- plot_hist(arr, bincount=50)
輸出就像這樣:
你也可以從文本文件中用散點圖來繪制數(shù)據(jù)。
2. PrettyTable
Bashplotlib在命令行環(huán)境中繪制數(shù)據(jù),而PrettyTable以一種好看的格式繪制輸出結(jié)果表。
同樣的,使用pip可以很容易地安裝這個庫:
- pipinstall prettytable
首先,導(dǎo)入這個庫:
- from prettytable import PrettyTable
然后,使用PrettyTable創(chuàng)建表格對象:
- table =PrettyTable()
一旦創(chuàng)建表格對象,就可以開始添加域和數(shù)據(jù)列了:
- table.field_names= ['Name', 'Age', 'City']
- table.add_row(["Alice", 20, "Adelaide"])
- table.add_row(["Bob", 20, "Brisbane"])
- table.add_row(["Chris", 20, "Cairns"])
- table.add_row(["David", 20, "Sydney"])
- table.add_row(["Ella", 20, "Melbourne"])
只需打印就可顯示表格:
print(table)
PrettyTable還支持改進表格樣式,幾乎包括可以想到的任何方面。例如,我們可以右對齊表格中的文字:
- table.align= 'r'
- print(table)
按列對表格排序:
- table.sortby= "City"
- print(table)
甚至可以得到表格的HTML字符串
3. Colorama
想為命令行應(yīng)用程序添加一些顏色嗎?Colorama可以很容易地輸出你喜歡的顏色。
圖源:unsplash
再一次使用pip安裝Colorama:
Colorama支持在“前景”(文本顏色)、“背景”(背景顏色)和“風格”(額外的風格的顏色)中支持渲染輸出顏色??梢詫?dǎo)入:
- fromcolorama import Fore, Back, Style
首先使用黃色顯示一些警告:
然后嘗試使用紅色背景顯示一些錯誤:
- print(Back.RED+ Fore.WHITE + "This is an error!")
紅色太艷了。使用“dim”風格。
- print(Back.RESET+ Style.DIM + "Another error!")
此處設(shè)置“RESET”改變背景顏色為默認。
“DIM”樣式使字體不可見。若想把所有東西都恢復(fù)正常時,只需將“Style”設(shè)置為“RESET_ALL”:
- print(Style.RESET_ALL)
4. FuzzyWuzzy
很多時候,你可能想為程序?qū)崿F(xiàn)一個“模糊”搜索功能,F(xiàn)uzzyWuzzy提供了一個開箱即用的輕量級解決方案。
和再去一樣,使用pip安裝:
- pip installfuzzywuzzy
導(dǎo)入庫:
- fromfuzzywuzzy import fuzz
做個簡單的測試:
- fuzz.ratio("Let’sdo a simple test", "Let us do a simple test")
如結(jié)果所示,“93”表示這兩個字符串有93%的相似性,這相當高了。
當有一個字符串列表,想要搜索所有的字符串,F(xiàn)uzzyWuzzy將幫助提取最相關(guān)的字符串及其相似性。
- fromfuzzywuzzy import processchoices = ["Data Visualisation", "DataVisualization", "Customised Behaviours", "CustomizedBehaviors"]process.extract("data visulisation", choices,limit=2)
- process.extract("custom behaviour", choices, limit=2)
在上面的示例中,參數(shù)limit告訴FuzzyWuzzy提取“前n個”結(jié)果。否則將獲得具有所有這些原始字符串及其相似性分數(shù)的元組列表。
5. TQDM
圖源:unsplash
你通常會使用Python來開發(fā)命令行工具嗎?如果是的話一定要試試這個庫。當CLI工具處理一些耗時的事情時,它將通過顯示一個進度條來指示完成了多少工作,幫助你了解情況。
老辦法,使用pip安裝:
- pipinstall tqdm
當for循環(huán)使用range函數(shù)時,只是把它替換為tqdm中的trange即可。
- fromtqdm import trangefor i in trange(100):
- sleep(0.01)
一般來說,對列表做循環(huán)。使用tqdm也很容易。
- fromtqdm import tqdm
- for e in tqdm([1,2,3,4,5,6,7,8,9]):
- sleep(0.5) # Suppose we are doing something with theelements
tqdm不僅適用于命令行環(huán)境,還適用于iPython / Jupyter Notebook。
圖源:https://github.com/tqdm/tqdm
在看到Bashplotlib庫之前,必須說筆者從來沒有在命令行環(huán)境中繪制數(shù)據(jù)的想法。人類發(fā)展思想和創(chuàng)造力的多樣性從來沒有停止過,這讓一切事物變得有趣起來。何不去試試呢?
當前題目:趣味至上主義:這5個有趣的Python庫帶你花式編碼
文章起源:http://www.5511xx.com/article/cospphi.html


咨詢
建站咨詢
