Passer au contenu du pied de page
AIDE PYTHON

Dask Python (Comment ça marche pour les développeurs)

Python est un langage puissant pour l'analyse de données et l'apprentissage automatique, mais gérer de grands ensembles de données peut être un défi pour l'analyse des données. C'est là qu'intervient 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.

Pourquoi Utiliser Dask ?

Dask est conçu pour faire évoluer votre code Python d'un seul ordinateur portable à un grand cluster. Il s'intègre parfaitement avec des bibliothèques Python populaires comme NumPy, pandas et scikit-learn, pour permettre une exécution parallèle sans changements de code significatifs.

Caractéristiques Clés de Dask

  1. Calcul Parallèle : Dask vous permet d'exécuter plusieurs tâches simultanément, accélérant considérablement les calculs.
  2. Évolutivité : Il peut gérer des ensembles de données plus grands que la mémoire en les divisant en plus petits morceaux et en les traitant en parallèle.
  3. Compatibilité : Fonctionne bien avec les bibliothèques Python existantes, ce qui le rend facile à intégrer dans votre flux de travail actuel.
  4. Flexibilité : Fournit des collections de haut niveau comme Dask DataFrame, des graphes de tâches, Dask Array, Dask Cluster, et Dask Bag, qui imitent respectivement pandas, NumPy, et les listes.

Commencer avec Dask

Installation

Vous pouvez installer Dask en utilisant pip :

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

Utilisation de base

Voici un exemple simple pour démontrer comment Dask peut paralléliser les calculs :

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

Dans cet exemple, Dask crée un grand tableau et le divise en plus petits morceaux. La méthode compute() déclenche le calcul parallèle et renvoie le résultat. Le graphe de tâches est utilisé en interne pour réaliser le calcul parallèle dans Python Dask.

Sortie

Dask Python (Comment Ça Fonctionne Pour les Développeurs) : Figure 1

Dask DataFrames

Les DataFrames Dask sont similaires aux DataFrames pandas mais sont conçus pour gérer des ensembles de données plus grands que la mémoire. Voici un exemple :

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

Le code montre la capacité de Dask à gérer des données temporelles, à générer des ensembles de données synthétiques et à calculer des agrégations comme des moyennes horaires de manière efficace en utilisant ses capacités de traitement parallèle avec plusieurs processus Python, un planificateur distribué et des ressources de calcul à plusieurs cœurs.

Sortie

Dask Python (Comment Ça Fonctionne Pour les Développeurs) : Figure 2

Meilleures Pratiques

  1. Commencer Petit : Commencez avec de petits ensembles de données pour comprendre comment fonctionne Dask avant de passer à l'échelle supérieure.
  2. Utilisez le Tableau de Bord : Dask fournit un tableau de bord pour surveiller la progression et les performances de vos calculs.
  3. Optimiser les Tailles de Bloc : Choisissez des tailles de blocs appropriées pour équilibrer l'utilisation de la mémoire et la vitesse de calcul.

Présentation d'IronPDF

Dask Python (Comment Ça Fonctionne Pour les Développeurs) : Figure 3 - IronPDF : La Bibliothèque PDF Python

IronPDF est une bibliothèque Python robuste conçue pour créer, éditer et signer des documents PDF en utilisant HTML, CSS, images et JavaScript. Il met l'accent sur l'efficacité des performances avec une utilisation minimale de la mémoire. Les fonctionnalités clés incluent :

  • Conversion HTML en PDF : Convertissez facilement des fichiers HTML, des chaînes de caractères et des URL en documents PDF, en utilisant les capacités de rendu PDF de Chrome.
  • Support Multiplateforme : Fonctionne parfaitement sur Python 3+ sur Windows, Mac, Linux et diverses plateformes cloud. Il est également compatible avec les environnements .NET, Java, Python et Node.js.
  • Édition et Signature : Personnalisez les propriétés PDF, appliquez des mesures de sécurité comme des mots de passe et des autorisations, et ajoutez facilement des signatures numériques.
  • Modèles de Page et Paramètres : Adaptez les mises en page PDF avec des en-têtes, des pieds de page, des numéros de page, des marges ajustables, des tailles de papier personnalisées et des conceptions réactives.
  • Conformité aux Normes : Respect strict des normes PDF telles que PDF/A et PDF/UA, garantissant la compatibilité avec l'encodage de caractères UTF-8. Une gestion efficace des actifs comme les images, les feuilles de style CSS et les polices est également prise en charge.

Installation

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

Générer des Documents PDF en Utilisant IronPDF et Dask.

Prérequis

  1. Assurez-vous que Visual Studio Code est installé.
  2. La version 3 de Python est installée.

Pour commencer, créons un fichier Python pour ajouter nos scripts.

Ouvrez Visual Studio Code et créez un fichier, daskDemo.py.

Installez les bibliothèques nécessaires :

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

Ajoutez ensuite le code Python ci-dessous pour démontrer l'utilisation des packages Python IronPDF et Dask :

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

Explication du code

Ce fragment de code intègre Dask pour la gestion des données et IronPDF pour la génération de PDF. Il démontre :

  1. Intégration de Dask : Utilise dask.datasets.timeseries() pour générer un DataFrame temporel synthétique (df). Affiche les 10 premières lignes (df.head(10)) et calcule le DataFrame moyen horaire (dfmean) basé sur les colonnes "x" et "y".
  2. Utilisation de IronPDF : Définit la clé de licence IronPDF en utilisant License.LicenseKey. Crée une chaîne HTML (content) contenant des en-têtes et des données provenant des DataFrames générés et calculés, puis rend ce contenu HTML en un PDF (pdf) en utilisant ChromePdfRenderer(), et enfin sauvegarde le PDF sous le nom "DemoIronPDF-Dask.pdf".

Ce code combine les capacités de Dask pour la manipulation de données à grande échelle et la fonctionnalité de IronPDF pour convertir le contenu HTML en un document PDF.

Sortie

Dask Python (Comment Ça Fonctionne Pour les Développeurs) : Figure 4

PDF

Dask Python (Comment Ça Fonctionne Pour les Développeurs) : Figure 5

Licence IronPDF

IronPDF permet aux utilisateurs de découvrir ses nombreuses fonctionnalités avant l'achat.

Placez la clé de licence au début du script avant d'utiliser le package IronPDF :

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

Conclusion

Dask est un outil polyvalent qui peut considérablement améliorer vos capacités de traitement des données en Python. En permettant le calcul parallèle et distribué, il vous permet de travailler efficacement avec de grands ensembles de données et s'intègre parfaitement à votre écosystème Python existant. IronPDF est une puissante bibliothèque Python pour créer et manipuler des documents PDF en utilisant HTML, CSS, images et JavaScript. Il offre des fonctionnalités telles que la conversion de HTML en PDF, l'édition de PDF, la signature numérique et le support multiplateforme, ce qui le rend adapté à diverses tâches de génération et de gestion de documents dans les applications Python.

Ensemble, les deux bibliothèques permettent aux data scientists d'effectuer des analyses de données avancées et des opérations scientifiques, puis de stocker les résultats de sortie au format PDF standard en utilisant IronPDF.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite