盤點(diǎn)十個(gè)讓工作效率倍增且有趣的 Python工具包!
大家好,今天給大家盤點(diǎn)10個(gè)讓工作更效率,編程更有趣的 Python 工具包,一起來了解一下。
1 PrettyErrors
PrettyErrors是一款可以讓Python拋出的異常變得通俗易懂的強(qiáng)大工具。
官網(wǎng)的示例:
可以看出,出錯(cuò)的文件、所在行、所在函數(shù)或模塊都被用不同的顏色標(biāo)記出來,比起左邊密密麻麻、眼花繚亂的錯(cuò)誤提示,顯然是優(yōu)化過的提示更人性化!
這個(gè)工具有兩種安裝方式:
# 全局安裝
python -m pip install pretty_errors
# 局部項(xiàng)目使用
import pretty_errors
pretty_errors.configure(
separator_character = '*',
filename_display = pretty_errors.FILENAME_EXTENDED,
line_number_first = True,
display_link = True,
lines_before = 5,
lines_after = 2,
line_color = pretty_errors.RED + '> ' + pretty_errors.default_config.line_color,
code_color = ' ' + pretty_errors.default_config.line_color,
truncate_code = True,
display_locals = True
)
pretty_errors.blacklist('c:/python')
2 Rich
Rich?是一個(gè)可以為終端提供富文本和精美格式的 Python 庫,利用Rich API?可以很容易的在終端輸出添加各種顏色和不同風(fēng)格。Rich還可以繪制漂亮的表格,進(jìn)度條,markdown,突出顯示語法的源代碼及回溯等等。
官網(wǎng)的示例:
Rich是跨平臺庫,適用于Linux、OSX和Windows。安裝也很方便。
python -m pip install rich
博主試著用了下這個(gè)庫,下面是測試案例,體驗(yàn)拉滿~。
from rich.console import Console
console = Console()
test_data = [
{"專業(yè)": "模式識別與智能系統(tǒng)", "學(xué)科": "人工智能", "params": [None, 1, 2, 4, False, True], "id": "1",},
{"專業(yè)": "模式識別與智能系統(tǒng)", "學(xué)科": "深度學(xué)習(xí)", "params": [7]},
{"專業(yè)": "模式識別與智能系統(tǒng)", "學(xué)科": "機(jī)器視覺", "params": [42, 23], "id": "2"},
]
def test_log():
enabled = False
context = {
"天氣": "陰",
}
movies = ["誤殺2", "江照黎明"]
console.log("Hello from", console, "!")
console.log(test_data, log_locals=True)
test_log()
在這里插入圖片描述
3 Dear PyGui
Dear PyGui是一個(gè)易于使用但功能強(qiáng)大的非終端Python GUI框架。
官網(wǎng)的示例:
Dear PyGui基于及時(shí)渲染和GPU來提供高度動態(tài)的用戶接口,且Dear PyGui是跨平臺的,在Windows 10、macOS、Linux甚至是樹莓派Raspberry Pi 4上都能使用;安裝起來也相當(dāng)簡單:
pip install dearpygui
or
pip3 install dearpygui
4 HummingBird
HummingBird?是微軟推出的一款人工智能庫,可以將傳統(tǒng)人工智能模型編譯成張量計(jì)算,了解深度學(xué)習(xí)框架,如Tensorflow、Pytorch的同學(xué)一定知道張量的重要性。
HummingBird?允許用戶幾乎無縫地使用各種深度學(xué)習(xí)框架來加速機(jī)器學(xué)習(xí)模型,基于HummingBird有很多好處:
- 所有當(dāng)前或?qū)碓谏窠?jīng)網(wǎng)絡(luò)框架中的優(yōu)化都會被引入;
- 硬件加速;
- 提供獨(dú)一無二的統(tǒng)一平臺來支持所有傳統(tǒng)機(jī)器學(xué)習(xí)模型和深度學(xué)習(xí);
- 無需重建模型
總之,HummingBird把深度學(xué)習(xí)的入門門檻又大大降低了。
HummingBird庫的一行安裝代碼如下:
pip install hummingbird-ml
5 HiPlot
HiPlot是微軟推出的用于分析人工智能高維數(shù)據(jù)的庫。
HiPlot是一個(gè)輕量級交互式可視化工具,用來幫助AI研究者發(fā)現(xiàn)高維數(shù)據(jù)中的關(guān)聯(lián)和內(nèi)在模式,同時(shí)采用并行渲染和其他圖形化方式來展示信息。
官網(wǎng)的示例:
HiPlot庫的一行安裝命令如下:
pip install -U hiplot # Or for conda users: conda install -c conda-forge hiplot
6 Norfair
Norfair是一個(gè)輕量級平面物體跟蹤Python庫。?
使用Norfair,你可以僅用幾行代碼就賦予任何檢測算法目標(biāo)跟蹤的能力。
官網(wǎng)的示例:
Norfair庫的一行安裝命令如下:
pip install norfair
7 GeoPandas
GeoPandas是用來處理地理空間數(shù)據(jù)的工具庫,不僅完美融合了pandas數(shù)據(jù)類型,還提供了操作地理空間數(shù)據(jù)的高級接口。
官網(wǎng)的示例:
這個(gè)庫的安裝相對復(fù)雜,需要具備以下依賴:
- numpy
- pandas (version 1.0 or later)
- shapely (interface to GEOS; version 1.7 or later)
- fiona (interface to GDAL; version 1.8 or later)
- pyproj (interface to PROJ; version 2.6.1 or later)
- packaging
安裝好依賴項(xiàng)后即可運(yùn)行安裝命令,如下:
pip install pygeos
8 PyAutoGUI
PyAutoGUI是一個(gè)跨平臺GUI自動化Python模塊。用于以編程方式控制鼠標(biāo)和鍵盤。可以讓計(jì)算機(jī)完成你所設(shè)計(jì)的自動控制任務(wù),解放你的雙手
安裝時(shí)會自動安裝PyAutoGUI?依賴的模塊,包括PyTweening,PyScreeze,PyGetWindow,PymsgBox和MouseInfo,因此只需一行命令,很方便:
pip install pyautogui
應(yīng)用時(shí)也有很多封裝好的API,例如
# 將鼠標(biāo)光標(biāo)移動到(200,300)
pyautogui.moveTo(200,300)
# 將鼠標(biāo)光標(biāo)移動到(400,500)
pyautogui.moveTo(400,500)
我做了個(gè)小示例:
9 Plotly
Plotly是一個(gè)交互式的、開源的、基于瀏覽器的Python圖形庫,提供了30多種圖表類型,包括
- 科學(xué)圖表
- 3D圖表
- 統(tǒng)計(jì)圖表
- SVG地圖
- 金融圖表
- …
Plotly庫的一行安裝命令如下:
pip install plotly==5.6.0
需要注意的是plotly?是建立在jupyter notebook?上的,所以需要在jupyter notebook?中導(dǎo)入這兩個(gè)包,而不能使用VSCode。
官網(wǎng)示例:
10 Emoji
Emoji?是個(gè)很有意思的Python庫,事實(shí)上Unicode?聯(lián)盟支持一整套表情符號代碼,Emoji庫就提供了打印表情符號的Python接口,使編程更有趣。
Emoji庫的一行安裝命令如下:
pip install emoji --upgrade
看看Emoji庫打印表情符號的效果:
>> import emoji
>> print(emoji.emojize('Python is :thumbs_up:'))
Python is ??
>> print(emoji.emojize('Python is :thumbsup:', language='alias'))
Python is ??
>> print(emoji.demojize('Python is ??'))
Python is :thumbs_up:
>>> print(emoji.emojize("Python is fun :red_heart:"))
Python is fun ?