"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > FireDucks : obtenez des performances supérieures à celles des pandas avec un coût d'apprentissage nul !

FireDucks : obtenez des performances supérieures à celles des pandas avec un coût d'apprentissage nul !

Publié le 2024-11-06
Parcourir:843

Pandas est l'une des bibliothèques les plus populaires, alors que je cherchais un moyen plus simple d'accélérer ses performances, j'ai découvert FireDucks et je m'y suis intéressé !

Comparaison avec les pandas : Pourquoi FireDucks ?

Un programme Pandas peut rencontrer de sérieux problèmes de performances selon la façon dont il a été écrit. Cependant, en tant que data scientist, je souhaite passer de plus en plus de temps à analyser les données plutôt qu'à améliorer les performances de mon code. Ce serait donc formidable s'il pouvait faire quelque chose comme inverser l'ordre des processus et accélérer automatiquement les performances du programme. Par exemple, Processus A => Processus B sera plus lent, nous le remplacerons donc par Processus B => Processus A. (Bien sûr, le résultat est garanti être le même.) On dit que les data scientists dépensent environ 45 % de leur temps à préparer les données, et alors que je pensais faire quelque chose pour accélérer le processus, je suis tombé sur un module appelé FireDucks.

D'après la documentation FireDucks, il semble être pris en charge uniquement pour les plates-formes Linux. Puisque j'utilise Windows sur ma machine principale, j'aimerais l'essayer à partir de WSL2 (Windows Subsystem for Linux), un environnement qui peut exécuter Linux sous Windows.

L'environnement que j'ai essayé est le suivant.

  • OS Microsoft Windows 11 Pro
  • Version 10.0.22631 Construire 22631
  • Modèle de système Z690 Pro RS
  • Type de système basé sur x64
  • Processeur PC Intel(R) Core(TM) i3-12100 de 12e génération, 3 300 MHz, 4 cœurs, 8 processeurs logiques
  • Produit de plinthe Z690 Pro RS
  • Bureau de rôle de plate-forme
  • Mémoire physique installée (RAM)64,0 Go

Installation et configuration de FireDucks

Installer WSL

WSL a été installé à l'aide de la documentation Microsoft suivante ; la distribution Linux est Ubuntu 22.04.1 LTS.

Installer FireDucks

Ensuite, installez FireDucks. Il est cependant très facile à installer.
pip installer des canards de feu

L'installation de FireDucks prendra quelques minutes (avec pyarrow, pandas et autres bibliothèques).

J'ai essayé d'exécuter le code ci-dessous, la vitesse de chargement était si rapide, les pandas ont pris 4 secondes et les fireDucks n'ont pris que 74,5 ns.

# 1. analysis based on time period and creative duration
# convert timestamp to date/time object
df['timestamp_converted'] = pd.to_datetime(df['timestamp'], unit='s ')

# define time period 
def get_part_of_day(hour): 
  if 5 



Tous ces prétraitements et analyses de données prenaient environ 8 secondes chez les pandas, alors qu'ils pouvaient être terminés en 4 secondes avec FireDucks. Une vitesse presque 2 fois supérieure pourrait être atteinte.

Performances améliorées

L'une des choses les plus stressantes liées à l'utilisation de pandas est d'attendre lors du chargement de grands ensembles de données, puis je dois attendre une opération complexe comme groupby. D'un autre côté, comme FireDucks effectue une évaluation paresseuse, le chargement lui-même ne prend aucun temps, le traitement est donc effectué là où il est nécessaire, et j'ai pensé que c'était très significatif avec une grande réduction du temps d'attente total.

En ce qui concerne les autres performances, il semble que des performances jusqu'à 16 fois plus rapides que celles des pandas aient été atteintes, comme l'a officiellement annoncé l'organisation. (Je comparerai les performances avec diverses bibliothèques concurrentes la prochaine fois.)

FireDucks: Get performance beyond pandas with zero learning cost!

zéro coût d'apprentissage

La possibilité de suivre la notation exacte des pandas sans avoir à penser à quoi que ce soit est un énorme avantage. Outre FireDucks, il existe d'autres bibliothèques d'accélération de trames de données, mais elles sont trop coûteuses à apprendre et trop faciles à oublier.

Par exemple, si vous souhaitez ajouter des colonnes avec des polaires, vous devez écrire quelque chose comme ceci.

# pandas df["new_col"] = df["A"]   1
# polars 
df = df.with_columns((pl.col("A")   1).alias("new_col"))

Presque pas besoin de modifier un code existant

J'ai plusieurs ETL et autres projets qui utilisent des pandas, et ce serait bien de voir une amélioration des performances simplement en installant et en remplaçant l'instruction d'importation par FireDucks.

Si vous souhaitez l'ajouter davantage, n'hésitez pas à commenter ci-dessous.

Déclaration de sortie Cet article est reproduit sur : https://dev.to/codewithved/fireducks-get-performance-beyond-pandas-with-zero-learning-cost-9do?1 En cas de violation, veuillez contacter [email protected] pour le supprimer
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3