Image générée avec Midjourney
En tant que professionnel des données, il est essentiel de comprendre comment traiter vos données. À l’ère moderne, cela signifie utiliser un langage de programmation pour manipuler rapidement notre ensemble de données afin d’obtenir les résultats escomptés.
Python est le langage de programmation le plus populaire utilisé par les professionnels des données, et de nombreuses bibliothèques sont utiles pour la manipulation des données. Du simple vecteur à la parallélisation, chaque cas d’utilisation dispose d’une bibliothèque qui pourrait aider.
Alors, quelles sont ces bibliothèques Python essentielles à la manipulation de données ? Allons-y.
1.NumPy
La première bibliothèque dont nous discuterions est NumPy. NumPy est une bibliothèque open source pour l’activité de calcul scientifique. Il a été développé en 2005 et a été utilisé dans de nombreux cas de science des données.
NumPy est une bibliothèque populaire, offrant de nombreuses fonctionnalités précieuses dans les activités de calcul scientifique telles que les objets matriciels, les opérations vectorielles et les fonctions mathématiques. De plus, de nombreux cas d’utilisation de la science des données reposent sur un calcul complexe de tables et de matrices. NumPy permet donc aux utilisateurs de simplifier le processus de calcul.
Essayons NumPy avec Python. De nombreuses plateformes de science des données, telles qu’Anaconda, ont Numpy installé par défaut. Mais vous pouvez toujours les installer via Pip.
Après l’installation, nous créerions un tableau simple et effectuerions des opérations sur le tableau.
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b
print(c)
Sortir: [5 7 9]
Nous pouvons également effectuer des calculs statistiques de base avec NumPy.
data = np.array([1, 2, 3, 4, 5, 6, 7])
mean = np.mean(data)
median = np.median(data)
std_dev = np.std(data)
print(f"The data mean:{mean}, median:{median} and standard deviation: {std_dev}")
Moyenne des données : 4,0, médiane : 4,0 et écart type : 2,0
Il est également possible d’effectuer des opérations d’algèbre linéaire telles que le calcul matriciel.
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]])
dot_product = np.dot(x, y)
print(dot_product)
Sortir:
[[19 22]
[43 50]]
Vous pouvez bénéficier de nombreux avantages en utilisant NumPy. De la gestion des données aux calculs complexes, il n’est pas étonnant que de nombreuses bibliothèques aient NumPy comme base.
2. Pandas
Pandas est la bibliothèque Python de manipulation de données la plus populaire pour les professionnels des données. Je suis sûr que de nombreux cours d’apprentissage de science des données utiliseraient Pandas comme base pour tout processus ultérieur.
Les Pandas sont célèbres car ils disposent d’API intuitives mais sont polyvalents, de sorte que de nombreux problèmes de manipulation de données peuvent facilement être résolus à l’aide de la bibliothèque Pandas. Pandas permet à l’utilisateur d’effectuer des opérations sur les données et d’analyser des données à partir de divers formats d’entrée tels que CSV, Excel, bases de données SQL ou JSON.
Les Pandas sont construits sur NumPy, donc les propriétés de l’objet NumPy s’appliquent toujours à n’importe quel objet Pandas.
Essayons la bibliothèque. Comme NumPy, il est généralement disponible par défaut si vous utilisez une plateforme Data Science telle qu’Anaconda. Cependant, vous pouvez suivre le Guide d’installation de Pandas si vous n’êtes pas sûr.
Vous pouvez essayer de lancer l’ensemble de données à partir de l’objet NumPy et obtenir un objet DataFrame (de type tableau) qui affiche les cinq premières lignes de données avec le code suivant.
import numpy as np
import pandas as pd
np.random.seed(0)
months = pd.date_range(start="2023-01-01", periods=12, freq='M')
sales = np.random.randint(10000, 50000, size=12)
transactions = np.random.randint(50, 200, size=12)
data = {
'Month': months,
'Sales': sales,
'Transactions': transactions
}
df = pd.DataFrame(data)
df.head()
Ensuite, vous pouvez essayer plusieurs activités de manipulation de données, telles que la sélection de données.
df[df['Transactions'] <100]
Il est possible de faire le calcul des données.
total_sales = df['Sales'].sum()
average_transactions = df['Transactions'].mean()
Effectuer un nettoyage des données avec Pandas est également simple.
df = df.dropna()
df = df.fillna(df.mean())
Il y a tellement de choses à faire avec Pandas pour la manipulation de données. Vérifier Article de Bala Priya sur l’utilisation de Pandas pour la manipulation de données pour apprendre davantage.
3. Polaires
polaire est une bibliothèque Python de manipulation de données relativement nouvelle conçue pour l’analyse rapide de grands ensembles de données. Les Polars offrent des gains de performances 30 fois supérieurs à ceux des Pandas dans plusieurs tests de référence.
Polars est construit sur Apache Arrow, il est donc efficace pour la gestion de la mémoire d’un grand ensemble de données et permet un traitement parallèle. Il optimise également leurs performances de manipulation de données en utilisant une exécution paresseuse qui retarde et calcule jusqu’à ce que cela soit nécessaire.
Pour l’installation de Polars, vous pouvez utiliser le code suivant.
Comme Pandas, vous pouvez lancer le Polars DataFrame avec le code suivant.
import numpy as np
import polars as pl
np.random.seed(0)
employee_ids = np.arange(1, 101)
ages = np.random.randint(20, 60, size=100)
salaries = np.random.randint(30000, 100000, size=100)
df = pl.DataFrame({
'EmployeeID': employee_ids,
'Age': ages,
'Salary': salaries
})
df.head()
Cependant, il existe des différences dans la manière dont nous utilisons Polars pour manipuler les données. Par exemple, voici comment nous sélectionnons les données avec Polars.
df.filter(pl.col('Age') > 40)
L’API est considérablement plus complexe que Pandas, mais elle est utile si vous avez besoin d’une exécution rapide pour de grands ensembles de données. D’un autre côté, vous n’obtiendrez aucun avantage si la taille des données est petite.
Pour connaître les détails, vous pouvez vous référer à Article de Josep Ferrer sur la différence entre les polaires et les pandas.
4. Vaex
Vaex est similaire à Polars car la bibliothèque est développée spécifiquement pour une manipulation considérable de données d’ensembles de données. Il existe cependant des différences dans la manière dont ils traitent l’ensemble de données. Par exemple, Vaex utilise des techniques de mappage de mémoire, tandis que Polars se concentre sur une approche multithread.
Vaex convient parfaitement aux ensembles de données bien plus volumineux que ce que Polars avait l’intention d’utiliser. Bien que Polars soit également destiné au traitement approfondi de manipulations d’ensembles de données, la bibliothèque est idéalement adaptée aux ensembles de données qui tiennent toujours dans la taille de la mémoire. Dans le même temps, Vaex serait formidable à utiliser sur des ensembles de données dépassant la mémoire.
Pour l’installation de Vaex, mieux vaut se référer à leur Documentationcar cela pourrait casser votre système si ce n’est pas fait correctement.
5. CuPy
CuPy est une bibliothèque open source qui permet le calcul accéléré par GPU en Python. C’est CuPy qui a été conçu pour remplacer NumPy et SciPy si vous devez exécuter le calcul sur les plates-formes NVIDIA CUDA ou AMD ROCm.
Cela rend CuPy idéal pour les applications qui nécessitent un calcul numérique intense et doivent utiliser l’accélération GPU. CuPy pourrait utiliser l’architecture parallèle du GPU et est bénéfique pour les calculs à grande échelle.
Pour installer CuPy, reportez-vous à leur référentiel GitHub, car de nombreuses versions disponibles peuvent ou non convenir aux plates-formes que vous utilisez. Par exemple, ci-dessous concerne la plateforme CUDA.
Les API sont similaires à NumPy, vous pouvez donc utiliser CuPy instantanément si vous êtes déjà familier avec NumPy. Par exemple, l’exemple de code pour le calcul de CuPy est ci-dessous.
import cupy as cp
x = cp.arange(10)
y = cp.array([2] * 10)
z = x * y
print(cp.asnumpy(z))
CuPy est la fin d’une bibliothèque Python essentielle si vous travaillez en permanence avec des données informatiques à grande échelle.
Conclusion
Toutes les bibliothèques Python que nous avons explorées sont indispensables dans certains cas d’utilisation. NumPy et Pandas constituent peut-être les bases, mais des bibliothèques comme Polars, Vaex et CuPy seraient bénéfiques dans des environnements spécifiques.
Si vous avez d’autres bibliothèques que vous jugez essentielles, partagez-les dans les commentaires !
Cornellius Yudha Wijaya est directeur adjoint de la science des données et rédacteur de données. Tout en travaillant à temps plein chez Allianz Indonesia, il aime partager des conseils sur Python et les données via les réseaux sociaux et la rédaction. Cornellius écrit sur une variété de sujets liés à l’IA et à l’apprentissage automatique.