跳至页脚内容
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 DataFrame

Dask DataFrame 类似于 pandas DataFrame,但旨在处理大于内存的数据集。 以下是一个例子:

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" 计算每小时平均 DataFrame (dfmean)。
  2. IronPDF 使用:使用 License.LicenseKey 设置 IronPDF 许可证密钥。 创建一个 HTML 字符串 (content),包含生成和计算的 DataFrame 中的标题和数据,然后使用 ChromePdfRenderer() 将此 HTML 内容渲染为 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 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。