當前位置: 華文世界 > 科技

6個好用的Python庫,絕對是瑰寶!

2024-02-15科技

在當今的技術浪潮中,Python已經成為了一種廣泛套用的程式語言。而要想充分發揮Python的威力,離不開各種優秀的庫的支持。這些庫能夠提供豐富的功能和強大的工具,幫助開發者們更高效地完成各種任務。在本文中,筆者將介紹6個被譽為瑰寶的Python庫,它們無疑會讓你的編程之旅變得更加輕松!

PyGWalker

https://github.com/Kanaries/pygwalker

PyGWalker是個在Jupyter Notebook環境中執行的視覺化探索式分析工具,僅一條命令即可生成一個可互動的圖形界面,以類似Tableau/PowerBI的方式,透過拖拽欄位進行Pandas數據分析。

Science plots

SciencePlots是一款用於科學繪圖的Python工具包。

當我們看學術期刊、論文時會看到各種各樣高大上的圖形。會好奇,這麽好看的圖到底怎麽畫的?是不是很困難?

的確,現在很多Python繪圖工具只是關註圖形所表達的數據資訊,而忽略了樣式。

SciencePlots則彌補了這片空白,它是一款專門針對各種學術論文的科學繪圖工具,例如,science、ieee等。

如下圖所示是SciencePlots繪制的ieee期刊多類別散點圖效果。

pydbgen

pydbgen是一個輕量的純 Python 庫,它可以用於生成隨機但有意義的數據記錄(包括姓名、地址、信用卡號、日期、時間、公司名稱、職位、車牌號等等),存放在 Pandas Dataframe 物件中,並保存到 SQLite 數據庫或 Excel 檔。

如下範例是利用pydbgen生成隨機的Pandas Dataframe,並生成數據庫表。

import pydbgenfrom pydbgen import pydbgenmyDB=pydbgen.pydb()testdf=myDB.gen_dataframe(5,['name','city','phone','date'])

HandCalcs

HandCalcs是一個非常實用的Python模組,可以幫助開發者輕松地從Python程式碼中生成LaTeX報告。使用HandCalcs,你只需編寫最少的程式碼,就能自動生成符合LaTeX格式的數學方程式。

對於經常使用LaTeX進行科技文件編寫的開發者來說,HandCalcs是一個必備的工具。它可以大大減少手動編寫、調整和更新數學方程式的工作量,提高文檔編寫的效率和準確性。

如下範例是使用HandCalcs生成LaTeX格式數學方程式的效果。

from math import sqrt,asin,sinimport handcalcs.render%%render#symbolica = 1b = 4c = 3x = (-b+sqrt(b**2-4*a*c))/(2*a)

AnimatPlot

AnimatPlot是一個開源的python庫,它構建在Matplotlib之上,用於建立高度互動式的動畫繪圖。

範例如下:

# 匯入所需的庫import numpy as npimport matplotlib.pyplot as pltimport animatplot as amp# 建立了一些座標軸上的點x = np.linspace(-2, 2, 41)y = np.linspace(-2, 2, 41)t = np.linspace(0, 2*np.pi, 30)X, Y, T = np.meshgrid(x, y, t)# 使用生成的座標點,計算data = np.sin(X*X+Y*Y-T)line_data = data[20,:,:]# 建立包含兩個子圖的圖形視窗,並設定各種圖形的內容,如座標軸便簽、標題等fig, (ax1, ax2) = plt.subplots(1, 2)for ax in [ax1, ax2]: ax.set_aspect('equal') ax.set_xlabel('x')ax2.set_ylabel('y', labelpad=-5)ax1.set_ylabel('z')ax1.set_ylim([-1.1,1.1])fig.suptitle('Multiple blocks')ax1.set_title('Cross Section: $y=0$')ax2.set_title(r'$z=\sin(x^2+y^2-t)$')# 建立兩個block物件# Line塊用於繪制一條線,Pcolormesh塊用於繪制一個偽彩色網格line_block = amp.blocks.Line(X[0,:,:], line_data, ax=ax1, t_axis=1)block = amp.blocks.Pcolormesh(X[:,:,0], Y[:,:,0], data, ax=ax2, t_axis=2, vmin=-1, vmax=1)# 添加顏色條,用於顯示偽彩色網格的顏色對映。plt.colorbar(block.quad)# 建立時間軸物件,再使用Animation類將塊和時間軸物件組合成一個動畫timeline = amp.Timeline(t, fps=10)anim = amp.Animation([block, line_block], timeline)# 添加使用者介面控制動畫的小部件anim.controls()# 顯示動畫視窗plt.show()

KnockKnock

KnockKnock是一個便捷的Python庫,它會在機器學習模型訓練結束或崩潰時發出通知。使用者可以透過電子郵件、Slack、Microsoft Teams等方式接收通知。

它提供了簡單的介面,透過幾行程式碼即可設定不同的通知方式,使你能夠及時了解訓練進度和狀態。以下是一個簡單的範例:

from knockknock import email_sender# 設定郵件發送的配置資訊email_config = { "email_address": "[email protected]", "password": "your_email_password", "smtp_server": "smtp.example.com", "smtp_port": 587, "receiver_email": "[email protected]"}@email_sender(**email_config)def train_model(): # 訓練模型的程式碼 # ...# 呼叫訓練函數train_model()

在這個範例中,透過裝飾train_model函數,使用提供的郵件配置資訊設定了郵件發送功能。當訓練完成或崩潰時,將透過電子郵件發送通知。