0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Charger et enregistrer des données NumPy

Le document explique comment charger et enregistrer des données avec NumPy dans divers formats, y compris texte, CSV, images et binaire. Il présente des fonctions spécifiques comme np.loadtxt, np.savetxt, np.genfromtxt et plt.imread pour manipuler ces fichiers. Des exemples pratiques illustrent l'utilisation de ces fonctions pour lire et écrire des matrices et des images.

Transféré par

AR DOU
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues3 pages

Charger et enregistrer des données NumPy

Le document explique comment charger et enregistrer des données avec NumPy dans divers formats, y compris texte, CSV, images et binaire. Il présente des fonctions spécifiques comme np.loadtxt, np.savetxt, np.genfromtxt et plt.imread pour manipuler ces fichiers. Des exemples pratiques illustrent l'utilisation de ces fonctions pour lire et écrire des matrices et des images.

Transféré par

AR DOU
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Charger et enregistrer des données NumPy

Accès rapide :
Manipulation de fichiers de données au format texte
Manipulation de fichiers au format CSV (Comma Separated Value)
Changement d'images à l'aide de MatPlotLib
Manipulation de fichiers dans un format binaire

Introduction
La capacité de lire et d'écrire des données est essentielle dans de nombreux projets scientifiques et d'analyse de
données. NumPy fournit des fonctions pratiques pour lire et écrire des données dans divers formats.

Il est notamment possible de lire et sauver des vecteurs (ou matrices) NumPy à partir de :

 Fichiers textes avec délimiteurs personnalisés


 Fichiers CSV (Comma-Separated Values)
 Fichiers images à divers formats (.jpg, .png, .tiff, ...)
 Fichiers binaires

Manipulation de fichiers de données au format texte


Considérons le fichier [Link] suivant :

123
456
789
Nous allons utiliser la fonction [Link] pour charger ce fichier texte.

import numpy as np

data = [Link]("[Link]")
print(type(data), [Link], [Link])
print(data)
<class '[Link]'> float64 (3, 3)
[[1. 2. 3.]
[4. 5. 6.]
[7. 8. 9.]]
Vous pouvez contrôler les type de données charger par [Link].
data = [Link]("[Link]", dtype=np.int32)
print(type(data), [Link], [Link])
print(data)
<class '[Link]'> int32 (3, 3)
[[1 2 3]
[4 5 6]
[7 8 9]]
Vous pouvez enregistrer une matrice NumPy dans un fichier texte via la fonction [Link].
data[1, 1] = 5000
[Link]("[Link]", data)

Manipulation de fichiers au format CSV (Comma Separated


Value)
Considérons le fichier CSV suivant :

A,B,C
1,2,3
4,5,6
7,8,9
Vous pouvez aussi charger ce fichier via la même fonction, mais il faudra lui spécifier au moins deux
arguments.

 delimiter : permet de contrôler le séparateur de valeur (par défaut, l'espace).


 skiprows : permet de ne pas considérer une ou plusieurs lignes. Dans notre cas, cela permettra de
retirer la ligne de titre.

D'autres arguments peuvent aussi être spécifiés, et notamment :

 dtype : permet de contrôler le type des données du tableau produit. Ce type sera le même pour toutes
les lignes et les colonnes.

data = [Link]("[Link]", delimiter=',', skiprows=1, dtype=np.int32)


print(type(data), [Link], [Link])
print(data)
<class '[Link]'> int32 (3, 3)
[[1 2 3]
[4 5 6]
[7 8 9]]
Une autre solution consiste à utiliser la fonction [Link]. Voici un premier exemple simple (notez
l'utilisation du paramètre skip_header en lieu et place de skiprows.
data = [Link]("[Link]", delimiter=',', skip_header=1, dtype=np.float32) print(type(data), [Link],
[Link]) print(data)
Comme ça vous pourriez penser que les deux fonctions sont identiques : il en est rien. La
fonction [Link] est en fait bien plus puissante, car elle permet de contrôler le type de données colonne
par colonne. Du plus, elle permet de gérer plus finement les valeurs manquantes dans le fichier CSV.
types = ["i4", "i8", "f8"] # équivaut à [np.int32, np.int64, np.float64]
data = [Link]("[Link]", delimiter=',', skip_header=1, dtype=types)
print(type(data), type(data[0][0]), type(data[0][1]), type(data[0][2]))
print(data)
<class '[Link]'> <class 'numpy.int32'> <class 'numpy.int64'> <class 'numpy.float64'>
[(1, 2, 3.) (4, 5, 6.) (7, 8, 9.)]
Changement d'images à l'aide de MatPlotLib
Vous pouvez facilement charger les valeurs des pixels d'une image dans un tableau NumPY. Mais pour y
arriver, vous avez besoin d'une librairie supplémentaire : il en existe plusieurs et notamment MatPlotLib. C'est
cette dernière que nous allons utiliser. Elle fournit la fonction [Link] pour répondre à ce besoin.
import [Link] as plt
import numpy as np

img = [Link]("[Link]")
print(type(img), [Link], [Link], [Link]())
<class '[Link]'> (1024, 1024, 3) float32 1.0

Comme vous le constatez, img est bien de type [Link]. L'image en question fait donc 1024 lignes par 1024
colonnes. Et comme nous avons à faire à une image RGB, nous récupérons trois plans de couleurs. La valeur
maximale à 1 permet de comprendre que chaque valeur de pixels sera une valeur flottante comprise entre 0 et
1. Selon le format de fichier (.jpg, par exemple) vous pourrez récupérer des entiers (compris entre 0 et 255).

Vérifions l'image que nous venons de charger.


[Link](img)
[Link]()

La fonction [Link] permet de réaliser l'opération inverse : la sauvegarde du tableau NumPy dans un fichier
d'image.
[Link]("[Link]", img) # On sauvegarde l'image au format JPG (à l'origine un fichier PNG)
img = [Link]("[Link]") # On recharge le nouveau fichier
print([Link], [Link]) # Cette fois-ci on manipule de entier non signés sur un seul octet.
(1024, 1024, 3) uint8

Manipulation de fichiers dans un format binaire


Voici les principaux formats binaires supportés par NumPy :

Format .npy : il s'agit d'un format de fichier binaire natif de NumPy pour stocker un seul tableau numpy.

 Sauvegarde : [Link]('[Link]', my_array)


 Lecture : my_array = [Link]('[Link]')

Format .npz : un format de fichier binaire pour stocker plusieurs tableaux numpy dans un seul fichier
compressé.

 Sauvegarde : [Link]('[Link]', array1=my_array1, array2=my_array2)


 Lecture :

data = [Link]('[Link]')
my_array1 = data['array1']
my_array2 = data['array2']
m = [Link]([[10, 20, 30], [40, 50, 60], [70, 80, 90]])
[Link]("[Link]", m)

Vous aimerez peut-être aussi