跳過到頁腳內容
PYTHON 幫助

Dask Python(開發人員工作原理)

Python 是一種強大的語言,適用於數據分析和機器學習,但處理大型數據集對數據分析來說可能是個挑戰。 這就是 Dask 開始派上用場的地方。 Dask is an open-source library that provides advanced parallelization for analytics, enabling efficient computation on large datasets that exceed the memory capacity of a single machine. In this article, we will look into the basic usage of the Dask library and another very interesting PDF-generation library called IronPDF from Iron Software to generate PDF documents.

為什麼要使用 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 數據幀相似,但設計為處理大於內存的數據集。 這是一個例子:

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 轉換:輕鬆將 HTML 文件、字符串和 URL 轉換為 PDF 文檔,利用 Chrome 的 PDF 渲染功能。
  • 跨平台支持:在 Windows、Mac、Linux 和各種雲平台上的 Python 3+ 上無縫工作。 它還與 .NET、Java、Python 和 Node.js 環境兼容。
  • 編輯和簽署:自定義 PDF 屬性,應用如密碼及許可的安全措施,並無縫添加數字簽名。
  • 頁面模板和設置:通過標題、頁腳、頁碼、可調邊距、自定義紙張大小和響應設計裁剪 PDF 布局。
  • 標準合規性:嚴格遵循 PDF 標準如 PDF/A 和 PDF/UA,確保 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() 生成合成時間序列數據幀 (df)。 打印前 10 行 (df.head(10)) 並計算基於列 "x" 和 "y" 的平均小時數據幀 (dfmean)。
  2. IronPDF 使用:使用 License.LicenseKey 設置 IronPDF 許可證密鑰。 創建一個包含所生成和計算的數據幀的標題和數據的 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 機器人,結合科技與創意的樂趣。