跳過到頁腳內容
PYTHON 說明

Dask Python(如何為開發人員工作)

Python 是一種功能強大的資料分析和機器學習語言,但處理大型資料集對資料分析來說可能具有挑戰性。 這時Dask就派上用場了。 Dask 是一個開源函式庫,它為分析提供進階並行化功能,能夠有效率地處理超出單一機器記憶體容量的大型資料集。本文將介紹 Dask 庫的基本用法,以及Iron Software開發的另一個非常有趣的 PDF 生成庫IronPDF ,用於生成 PDF 文件。

為什麼要使用 Dask?

Dask 的設計目標是將您的 Python 程式碼從單一筆記型電腦擴展到大型叢集。 它與流行的 Python 庫(如 NumPy、pandas 和 scikit-learn)無縫集成,無需進行重大程式碼變更即可並行執行。

Dask 的主要特點

1.並行計算:Dask 允許您同時執行多個任務,從而顯著加快計算速度。 2.可擴展性:它可以將大於記憶體的資料集分成更小的區塊並並行處理,從而處理這些資料集。 3.相容性:與現有的 Python 庫配合良好,可以輕鬆整合到您目前的工作流程中。 4.靈活性:提供高階集合,如 Dask DataFrame、任務圖、Dask Array、Dask Cluster 和 Dask Bag,分別模仿 pandas、NumPy 和清單。

Dask入門指南

安裝

您可以使用 pip 安裝 Dask:

pip install dask[complete]
pip install dask[complete]
SHELL

基本用法

以下是一個簡單的範例,示範 Dask 如何並行化計算:

import dask.array as da

# Create a large Dask array
x = da.random.random((10, 10), chunks=(10, 10))
print('Generated Input')
print(x.compute())

# Perform a computation
result = x.mean().compute()
print('Generated Mean')
print(result)
import dask.array as da

# Create a large Dask array
x = da.random.random((10, 10), chunks=(10, 10))
print('Generated Input')
print(x.compute())

# Perform a computation
result = x.mean().compute()
print('Generated Mean')
print(result)
PYTHON

在這個範例中,Dask 會建立一個大數組並將其分割成更小的區塊。 compute()方法觸發平行計算並傳回結果。 Python Dask 內部使用任務圖來實現平行運算。

輸出

Dask Python(開發者使用指南):圖 1

Dask 資料幀

Dask DataFrames 與 pandas DataFrames 類似,但其設計目的是處理大於記憶體的資料集。 以下是一個範例:

import dask

# Generate a synthetic timeseries DataFrame
df = dask.datasets.timeseries()
print('\nGenerated DataFrame')
print(df.head(10))

# Compute mean hourly resampled DataFrame
print('\nComputed Mean Hourly DataFrame')
print(df[["x", "y"]].resample("1h").mean().head(10))
import dask

# Generate a synthetic timeseries DataFrame
df = dask.datasets.timeseries()
print('\nGenerated DataFrame')
print(df.head(10))

# Compute mean hourly resampled DataFrame
print('\nComputed Mean Hourly DataFrame')
print(df[["x", "y"]].resample("1h").mean().head(10))
PYTHON

該程式碼展示了 Dask 處理時間序列資料、生成合成資料集以及利用其平行處理能力(使用多個 Python 進程、分散式調度程序和多核心計算資源)高效計算聚合(例如小時平均值)的能力。

輸出

Dask Python(開發者使用指南):圖 2

最佳實務

1.從小規模開始:先從小資料集入手,了解 Dask 的工作原理,再逐步擴大規模。 2.使用儀錶板:Dask 提供了一個儀錶板來監控計算的進度和效能。 3.優化區塊大小:選擇合適的區塊大小,以平衡記憶體使用和計算速度。

介紹 IronPDF。

Dask Python(開發者使用指南):圖 3 - IronPDF:Python PDF 函式庫

IronPDF是一個功能強大的 Python 庫,旨在利用 HTML、CSS、圖像和 JavaScript 建立、編輯和簽署 PDF 文件。 它注重效能效率,同時最大限度地減少記憶體佔用。 主要功能包括

  • HTML 轉 PDF 轉換:利用 Chrome 的 PDF 渲染功能,輕鬆將 HTML 檔案、字串和 URL 轉換為 PDF 文件。 *跨平台支援*:可在 Windows、Mac、Linux 和各種雲端平台上的 Python 3+ 無縫運作。 它還相容於 .NET、Java、Python 和 Node.js 環境。 編輯和簽名:自訂 PDF 屬性,應用密碼和權限等安全措施,並無縫添加數位簽名。 頁面範本和設定:透過頁首、頁尾、頁碼、可調邊距、自訂紙張尺寸和響應式設計來客製化 PDF 版面。 標準符合性**:嚴格遵守 PDF/A 和 PDF/UA 等 PDF 標準,確保與 UTF-8 字元編碼相容。 它還支援對圖像、CSS樣式表和字體等資源進行高效管理。

安裝

pip install ironpdf
pip install dask
pip install ironpdf
pip install dask
SHELL

使用 IronPDF 和 Dask 產生 PDF 文件。

先決條件

  1. 確保已安裝 Visual Studio Code。
  2. 已安裝 Python 版本 3。

首先,讓我們建立一個 Python 檔案來加入我們的腳本。

開啟 Visual Studio Code 並建立一個名為daskDemo.py的檔案。

安裝必要的庫:

pip install dask
pip install ironpdf
pip install dask
pip install ironpdf
SHELL

然後加入以下 Python 程式碼來示範 IronPDF 和 Dask Python 套件的用法:

import dask
from ironpdf import *

# Apply your license key
License.LicenseKey = "key"

# Generate a synthetic timeseries DataFrame
df = dask.datasets.timeseries()
print('\nGenerated DataFrame')
print(df.head(10))

# Compute the mean hourly DataFrame
dfmean = df[["x", "y"]].resample("1h").mean().head(10)
print('\nComputed Mean Hourly DataFrame')
print(dfmean)

# Initialize the PDF renderer
renderer = ChromePdfRenderer()

# Create HTML content for the PDF
content = "<h1>Awesome Iron PDF with Dask</h1>"

# Add generated DataFrame to the content
content += "<h2>Generated DataFrame (First 10)</h2>"
rows = df.head(10)
for i in range(10):
    row = rows.iloc[i]
    content += f"<p>{str(row[0])}, {str(row[2])}, {str(row[3])}</p>"

# Add computed mean DataFrame to the content
content += "<h2>Computed Mean Hourly DataFrame (First 10)</h2>"
for i in range(10):
    row = dfmean.iloc[i]
    content += f"<p>{str(row[0])}</p>"

# Render the HTML content as PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Save the PDF to a file
pdf.SaveAs("DemoIronPDF-Dask.pdf")
import dask
from ironpdf import *

# Apply your license key
License.LicenseKey = "key"

# Generate a synthetic timeseries DataFrame
df = dask.datasets.timeseries()
print('\nGenerated DataFrame')
print(df.head(10))

# Compute the mean hourly DataFrame
dfmean = df[["x", "y"]].resample("1h").mean().head(10)
print('\nComputed Mean Hourly DataFrame')
print(dfmean)

# Initialize the PDF renderer
renderer = ChromePdfRenderer()

# Create HTML content for the PDF
content = "<h1>Awesome Iron PDF with Dask</h1>"

# Add generated DataFrame to the content
content += "<h2>Generated DataFrame (First 10)</h2>"
rows = df.head(10)
for i in range(10):
    row = rows.iloc[i]
    content += f"<p>{str(row[0])}, {str(row[2])}, {str(row[3])}</p>"

# Add computed mean DataFrame to the content
content += "<h2>Computed Mean Hourly DataFrame (First 10)</h2>"
for i in range(10):
    row = dfmean.iloc[i]
    content += f"<p>{str(row[0])}</p>"

# Render the HTML content as PDF
pdf = renderer.RenderHtmlAsPdf(content)

# Save the PDF to a file
pdf.SaveAs("DemoIronPDF-Dask.pdf")
PYTHON

程式碼解釋

這段程式碼片段整合了 Dask 用於資料處理和 IronPDF 用於 PDF 生成。 它表明:

  1. Dask 整合:使用dask.datasets.timeseries()產生合成時間序列 DataFrame ( df )。 列印前 10 行( df.head(10) ),並根據列"x"和"y"計算每小時平均資料幀( dfmean )。
  2. IronPDF 用法:使用License.LicenseKey設定 IronPDF 許可證密鑰。 建立一個包含來自已產生和已計算的 DataFrame 的標頭和資料的 HTML 字串( content ),然後使用ChromePdfRenderer()將此 HTML 內容渲染成 PDF( pdf ),最後將 PDF 儲存為"DemoIronPDF-Dask.pdf"。

程式碼結合了 Dask 的大規模資料處理功能和 IronPDF 的將 HTML 內容轉換為 PDF 文件的功能。

輸出

Dask Python(開發者使用指南):圖 4

PDF

Dask Python(開發者使用指南):圖 5

IronPDF 授權。

IronPDF許可證密鑰可讓使用者在購買前體驗其豐富的功能。

在使用IronPDF 軟體包之前,請將許可證密鑰放在腳本的開頭:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
PYTHON

結論

Dask是一款功能強大的工具,可顯著增強您在 Python 中的資料處理能力。 透過啟用平行和分散式運算,它使您能夠有效地處理大型資料集,並與您現有的 Python 生態系統無縫整合。 IronPDF是一個功能強大的 Python 庫,它使用 HTML、CSS、圖像和 JavaScript 來建立和操作 PDF 文件。 它提供 HTML 轉 PDF、PDF 編輯、數位簽章和跨平台支援等功能,使其適用於 Python 應用程式中的各種文件生成和管理任務。

這兩個庫結合起來,可以讓資料科學家執行高級資料分析和科學操作,然後使用 IronPDF 將輸出結果以標準 PDF 格式儲存。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。