Dernière mise à jour le 19 août 2020
Le développement de modèles d’apprentissage automatique en Python nécessite souvent l’utilisation de tableaux NumPy.
Les tableaux NumPy sont des structures de données efficaces pour travailler avec des données en Python, et les modèles d’apprentissage automatique comme ceux de la bibliothèque scikit-learn, et les modèles d’apprentissage profond comme ceux de la bibliothèque Keras, s’attendent à des données d’entrée au format des tableaux NumPy et font des prédictions au format des tableaux NumPy.
En tant que tel, il est courant de devoir enregistrer des tableaux NumPy dans un fichier.
Par exemple, vous pouvez préparer vos données avec des transformations comme la mise à l’échelle et avoir besoin de les enregistrer dans un fichier pour une utilisation ultérieure. Vous pouvez également utiliser un modèle pour faire des prédictions et avoir besoin d’enregistrer les prédictions dans un fichier pour une utilisation ultérieure.
Dans ce tutoriel, vous découvrirez comment enregistrer vos tableaux NumPy dans un fichier.
Après avoir terminé ce tutoriel, vous saurez :
- Comment enregistrer des tableaux NumPy dans des fichiers au format CSV.
- Comment enregistrer des tableaux NumPy dans des fichiers au format NPY.
- Comment enregistrer des tableaux NumPy dans des fichiers au format NPZ compressé.
Démarrez votre projet avec mon nouveau livre Machine Learning Mastery With Python, comprenant des tutoriels étape par étape et les fichiers de code source Python pour tous les exemples.
Démarrons.
Comment enregistrer un tableau NumPy dans un fichier pour l’apprentissage automatique
Photo de Chris Combe, certains droits réservés.
- Survol du tutoriel
- Enregistrer NumPy Array dans un fichier .CSV File (ASCII)
- 1.1 Exemple d’enregistrement d’un tableau NumPy dans un fichier CSV
- 1.2 Exemple de chargement d’un tableau NumPy à partir d’un fichier CSV
- Enregistrement du tableau NumPy dans le fichier .NPY File (binaire)
- 2.1 Exemple d’enregistrement d’un tableau NumPy dans un fichier .npy
- 2.2 Exemple de chargement d’un tableau NumPy à partir d’un fichier NPY
- Enregistrement du tableau NumPy dans un fichier .NPZ File (compressé)
- 3.1 Exemple d’enregistrement d’un tableau NumPy dans un fichier NPZ
- 3.2 Exemple de chargement d’un tableau NumPy à partir d’un fichier NPZ
- Lectures complémentaires
- Postes
- APIs
- Summary
- Découvrez l’apprentissage automatique rapide en Python !
- Développez vos propres modèles en quelques minutes
- Apportez enfin l’apprentissage automatique àvos propres projets
Survol du tutoriel
Ce tutoriel est divisé en trois parties ; ce sont :
- Enregistrer un tableau NumPy dans un fichier .CSV File (ASCII)
- Enregistrer NumPy Array dans un fichier .NPY (binaire)
- Enregistrer NumPy Array dans un fichier .NPZ (compressé)
Enregistrer NumPy Array dans un fichier .CSV File (ASCII)
Le format de fichier le plus courant pour stocker des données numériques dans des fichiers est le format de variables séparées par des virgules, ou CSV pour faire court.
Il est très probable que vos données d’entraînement et les données d’entrée de vos modèles soient stockées dans des fichiers CSV.
Il peut être pratique d’enregistrer des données dans des fichiers CSV, comme les prédictions d’un modèle.
Vous pouvez enregistrer vos tableaux NumPy dans des fichiers CSV en utilisant la fonction savetxt(). Cette fonction prend un nom de fichier et un tableau comme arguments et enregistre le tableau au format CSV.
Vous devez également spécifier le délimiteur ; il s’agit du caractère utilisé pour séparer chaque variable dans le fichier, le plus souvent une virgule. Cela peut être défini via l’argument « delimiter ».
1.1 Exemple d’enregistrement d’un tableau NumPy dans un fichier CSV
L’exemple ci-dessous montre comment enregistrer un seul tableau NumPy au format CSV.
1
2
3
4
5
6
7
|
# sauvegarde du tableau numpy array as csv file
from numpy import asarray
from numpy import savetxt
# define data
data = asarray(])
# save to csv file
savetxt(‘data.csv’, data, delimiter=’,’)
|
L’exécution de l’exemple définira un tableau NumPy et le sauvegardera dans le fichier ‘data.csv’.
Le tableau a une seule ligne de données avec 10 colonnes. Nous nous attendrions à ce que ces données soient enregistrées dans un fichier CSV comme une seule ligne de données.
Après avoir exécuté l’exemple, nous pouvons inspecter le contenu de ‘data.csv’.
Nous devrions voir les éléments suivants :
1
|
0.000000000000000000e+00,1.000000000000000000e+00,2.000000000000000000e+00,3.000000000000000000e+00,4.000000000000000000e+00,5.000000000000000000e+00,6.000000000000000000e+00,7.00000000000000e+00,8.00000000000000e+00,9.00000000000000e+00
|
Nous pouvons voir que les données sont correctement enregistrées comme une seule ligne et que les nombres à virgule flottante dans le tableau ont été enregistrés avec une précision complète.
1.2 Exemple de chargement d’un tableau NumPy à partir d’un fichier CSV
Nous pouvons charger ces données plus tard comme un tableau NumPy en utilisant la fonction loadtext() et en spécifiant le nom du fichier et le même délimiteur de virgule.
L’exemple complet est repris ci-dessous.
1
2
3
4
5
6
|
# load numpy array from csv file
from numpy import loadtxt
# load array
data = loadtxt(‘data.csv’, delimiter=’,’)
# print the array
print(data)
|
L’exécution de l’exemple charge les données du fichier CSV et imprime le contenu, correspondant à notre unique ligne à 10 colonnes définie dans l’exemple précédent.
1
|
|
Enregistrement du tableau NumPy dans le fichier .NPY File (binaire)
Parfois, nous avons beaucoup de données dans des tableaux NumPy que nous souhaitons sauvegarder efficacement, mais que nous n’avons besoin d’utiliser que dans un autre programme Python.
C’est pourquoi nous pouvons enregistrer les tableaux NumPy dans un format binaire natif qui est efficace à la fois pour l’enregistrement et le chargement.
C’est courant pour les données d’entrée qui ont été préparées, telles que les données transformées, qui devront être utilisées comme base pour tester une gamme de modèles d’apprentissage automatique à l’avenir ou pour exécuter de nombreuses expériences.
Le format de fichier .npy est approprié pour ce cas d’utilisation et est appelé simplement « format NumPy ».
Cela peut être réalisé en utilisant la fonction NumPy save() et en spécifiant le nom du fichier et le tableau qui doit être enregistré.
2.1 Exemple d’enregistrement d’un tableau NumPy dans un fichier .npy
L’exemple ci-dessous définit notre tableau NumPy à deux dimensions et l’enregistre dans un fichier .npy.
1
2
3
4
5
6
7
|
# sauvegarde du tableau numpy en tant que fichier npy
from numpy import asarray
from numpy import save
# define data
data = asarray(])
# sauvegarde dans le fichier npy
save(‘data.npy’, data)
|
Après avoir exécuté l’exemple, vous verrez un nouveau fichier dans le répertoire avec le nom ‘data.npy’.
Vous ne pouvez pas inspecter le contenu de ce fichier directement avec votre éditeur de texte car il est au format binaire.
2.2 Exemple de chargement d’un tableau NumPy à partir d’un fichier NPY
Vous pouvez charger ce fichier comme un tableau NumPy plus tard en utilisant la fonction load().
L’exemple complet est repris ci-dessous.
1
2
3
4
5
6
|
# load numpy array from npy file
from numpy import load
# load array
data = load(‘data.npy’)
# imprimer le tableau
print(data)
|
L’exécution de l’exemple chargera le fichier et imprimera le contenu, confirmant à la fois qu’il a été chargé correctement et que le contenu correspond à ce que nous attendons dans le même format bidimensionnel.
1
|
]
|
Enregistrement du tableau NumPy dans un fichier .NPZ File (compressé)
Parfois, nous préparons des données pour la modélisation qui doivent être réutilisées à travers plusieurs expériences, mais les données sont grandes.
Il peut s’agir de tableaux NumPy prétraités comme un corpus de texte (entiers) ou une collection de données d’images remises à l’échelle (pixels). Dans ces cas, il est souhaitable à la fois d’enregistrer les données dans un fichier, mais aussi dans un format compressé.
Cela permet de réduire des gigaoctets de données à des centaines de mégaoctets et de les transmettre facilement à d’autres serveurs de cloud computing pour de longues exécutions d’algorithmes.
Le format de fichier .npz est approprié pour ce cas et supporte une version compressée du format de fichier natif de NumPy.
La fonction NumPy savez_compressed() permet d’enregistrer plusieurs tableaux NumPy dans un seul fichier .npz compressé.
3.1 Exemple d’enregistrement d’un tableau NumPy dans un fichier NPZ
Nous pouvons utiliser cette fonction pour enregistrer notre tableau NumPy unique dans un fichier compressé.
L’exemple complet est indiqué ci-dessous.
1
2
3
4
5
6
7
|
# save numpy array as npz file
from numpy import asarray
from numpy import savez_compressed
# define data
data = asarray(])
# save to npy file
savez_compressed(‘data.npz’, data)
|
L’exécution de l’exemple définit le tableau et l’enregistre dans un fichier au format numpy compressé avec le nom ‘data.npz’.
Comme pour le format .npy, nous ne pouvons pas inspecter le contenu du fichier enregistré avec un éditeur de texte car le format du fichier est binaire.
3.2 Exemple de chargement d’un tableau NumPy à partir d’un fichier NPZ
Nous pouvons charger ce fichier plus tard en utilisant la même fonction load() de la section précédente.
Dans ce cas, la fonction savez_compressed() supporte l’enregistrement de plusieurs tableaux dans un seul fichier. Par conséquent, la fonction load() peut charger plusieurs tableaux.
Les tableaux chargés sont renvoyés par la fonction load() dans un dict avec les noms ‘arr_0’ pour le premier tableau, ‘arr_1’ pour le second, et ainsi de suite.
L’exemple complet de chargement de notre tableau unique est listé ci-dessous.
1
2
3
4
5
6
7
8
|
# load numpy array from npz file
from numpy import load
# load dict of arrays
dict_data = load(‘data.npz’)
# extraire le premier tableau
data = dict_data
# imprimer le tableau
print(data)
|
L’exécution de l’exemple charge le fichier numpy compressé qui contient un dictionnaire de tableaux, puis extrait le premier tableau que nous avons sauvegardé (nous n’en avons sauvegardé qu’un), puis imprime le contenu, en confirmant que les valeurs et la forme du tableau correspondent à ce que nous avons sauvegardé en premier lieu.
1
|
]
|
Lectures complémentaires
Cette section fournit plus de ressources sur le sujet si vous cherchez à approfondir.
Postes
- Comment charger des données d’apprentissage automatique en Python
- Une douce introduction aux tableaux NumPy en Python
- Comment indexer, découper et remodeler les tableaux NumPy pour l’apprentissage automatique
APIs
- numpy.savetxt API
- numpy.save API
- numpy.savez API
- numpy.savez_compressé API
- numpy.load API
- numpy.loadtxt API
Summary
Dans ce tutoriel, vous avez découvert comment enregistrer vos tableaux NumPy dans un fichier.
Spécifiquement, vous avez appris :
- Comment enregistrer des tableaux NumPy dans des fichiers au format CSV.
- Comment enregistrer des tableaux NumPy dans des fichiers au format NPY.
- Comment enregistrer des tableaux NumPy dans des fichiers compressés au format NPZ.
Avez-vous des questions ?
Posez vos questions dans les commentaires ci-dessous et je ferai de mon mieux pour y répondre.
Découvrez l’apprentissage automatique rapide en Python !
Développez vos propres modèles en quelques minutes
…avec seulement quelques lignes de code scikit-learn
Apprenez comment dans mon nouvel Ebook :
Maîtrise de l’apprentissage automatique avec Python
Couvre des tutoriels d’auto-apprentissage et des projets de bout en bout comme :
Chargement des données, visualisation, modélisation, réglage, et bien plus encore…
Apportez enfin l’apprentissage automatique à
vos propres projets
Skip les académiques. Juste des résultats.
Voyez ce qu’il y a dedans