> Photo by JOSHUA COLEMAN on Unsplash
您是否曾經想到過數據可視化可以在命令行中進行?
作為最流行的編程語言之一,Python擁有大量促進開發的優秀庫,例如Pandas,Numpy,Matplotlib,SciPy等。
但是,在本文中,我將向您介紹一些更有趣而不是非常有用的庫。 我相信這些庫可以顯示Python的另一個方面以及社區的繁榮發展。
1. Bashplotlib
老實說,當我第一次看到這個庫時,我問為什么人們可能需要這個? Bashplotlib是一個Python庫,使我們能夠在命令行標準輸出環境中繪制數據。
很快,我意識到當您沒有可用的GUI時,它可能會很有用。 嗯,這種情況可能不會那么頻繁,但這并不能阻止我的好奇心,并認為它是一個非常有趣的Python庫。
Bashplotlib可以通過pip輕松安裝。
pip install bashplotlib
我們來看一些例子。 在下面的代碼中,我當然導入了numpy來生成一些隨機數組以及bashplotlib。
import numpy as np
from bashplotlib.histogram import plot_hist
arr = np.random.normal(size=1000, loc=0, scale=1)
plot_hist(arr, bincount=50)
輸出是這樣的
那不是很有趣嗎? :)
此外,您可以將數據繪制成文本文件中的散點圖。
2. PrettyTable
我剛剛介紹的Bashplotlib是用于在命令行環境中繪制數據,而PrettyTable是用于以漂亮格式輸出表的。
同樣,我們可以使用pip輕松安裝此庫。
pip install prettytable
首先,讓我們導入庫。
from prettytable import PrettyTable
然后,我們可以使用PrettyTable創建一個表對象。
table = PrettyTable()
一旦有了表對象,就可以開始添加字段和數據行。
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. FuzzyWuzzy
我認為該庫不僅非常有趣,而且非常有用。 很多時候,您可能想為程序實現"模糊"搜索功能。 FuzzyWuzzy為此提供了一個現成的輕量級解決方案。
照常從pip安裝它。
pip install fuzzywuzzy
導入庫:
from fuzzywuzzy import fuzz
讓我們做一個簡單的測試。
fuzz.ratio("Let's do a simple test", "Let us do a simple test")
如圖所示,結果" 93"表示這兩個字符串具有93%的相似度,這非常高。
當您有一個字符串列表,并且想要針對所有字符串搜索一個術語時,FuzzyWuzzy將幫助您提取具有相似性的最相關的字符串。
from fuzzywuzzy import process
choices = ["Data Visualisation", "Data Visualization", "Customised Behaviours", "Customized Behaviors"]
process.extract("data visulisation", choices, limit=2)
process.extract("custom behaviour", choices, limit=2)
在上面的示例中,參數限制告訴FuzzyWuzzy為您提取"前n個"結果。 否則,您將獲得具有所有這些原始字符串及其相似性分數的元組列表。
4. TQDM
您通常使用Python開發命令行工具嗎? 如果是這樣,當您的CLI工具正在處理一些耗時的事情時,此有趣的庫將通過顯示進度欄指示已完成的工作量來為您提供幫助。
再次使用pip安裝。
pip install tqdm
當使用范圍函數進行for循環時,只需將其替換為tqdm中的trange。
from tqdm import trange
for i in trange(100):
sleep(0.01)
更一般而言,您可能想循環一個列表。 使用tqdm也很容易。
from tqdm import tqdm
for e in tqdm([1,2,3,4,5,6,7,8,9]):
sleep(0.5)
# Suppose we are doing something with the elements
tqdm不僅適用于命令行環境,而且適用于iPython / Jupyter Notebook。
> image courtesy: https://github.com/tqdm/tqdm
5.Colorama
您是否要向命令行應用程序添加一些顏色? Colorama使您可以輕松輸出所需顏色的所有內容。
重新安裝Colorama需要點子。
pip install colorama
Colorama支持以"前景"(文本顏色),"背景"(背景顏色)和"樣式"(顏色的其他樣式)呈現輸出文本顏色。 我們可以導入
from colorama import Fore, Back, Style
首先,讓我們用黃色顯示一些警告。
print(Fore.YELLOW)
print("This is a warning!")
然后,讓我們嘗試使用紅色背景色顯示一些錯誤。
print(Back.RED + Fore.WHITE + "This is an error!")
那紅色太亮了。 讓我們使用"昏暗"風格。
print(Back.RESET + Style.DIM + "Another error!")
在這里,我們將" RESET"設置為返回以將背景色更改為默認值。
" DIM"樣式使字體不可見。 當我們要將所有內容恢復為正常時,只需將"樣式"設置為" RESET_ALL"
print(Style.RESET_ALL)
摘要
感謝這些為Python社區做出貢獻并蓬勃發展的開源開發人員。
在我看到Bashplotlib庫之前,我不得不說,我從來沒有這樣的想法在命令行環境中繪制數據。 無論對您有用還是無效,我都想說人們的發展思想和創造力的多樣性永遠不會停止。
壽命短,請使用Python!
(本文翻譯自Christopher Tao的文章《5 Interesting Python Libraries》,參考:https://towardsdatascience.com/5-interesting-python-libraries-1395c791deb5)