Numpy -- Episode5
Lecture et Ecriture des Données d’un Tableau dans un fichier
On sera ramené à utiliser de grande quantité de données qu’on ne peut pas les traiter manuellement. Dans ce cas, il est souhaitable de sauvegarder les résultats dans un fichier ou de lire les données d’entrée à partir d’un fichier.
Chargement et Enregistrement de Données dans des Fichiers Binaires
NumPy fournit une paire de fonctions appelées save() et load() qui nous permettent d'enregistrer puis de récupérer plus tard les données stockées sous format binaire.
Une fois que nous avons un tableau à enregistrer, par exemple, celui qui contient le résultat de notre traitement d'analyse de données, nous appelons simplement la fonction save() en spécifiant comme arguments le nom du fichier et le tableau à sauvegarder. Le fichier recevra automatiquement l'extension .npy.
>>> data = ([[0.90683543, 0.90537126, 0.09742985],
[0.93116457, 0.67231929, 0.71593691],
[0.3414973 , 0.86036798, 0.42524077],
[0.02504903, 0.83300711, 0.30334608]])
>>> np.save('fich_data', data)
Lorsque nous devons récupérer les données stockées dans le fichier .npy, nous utilisons la fonction load() en spécifiant le nom de fichier comme argument, en ajoutant cette fois l'extension .npy.
>>> data_load = np.load('fich_data.npy')
>>> data_load
array([[0.90683543, 0.90537126, 0.09742985],
[0.93116457, 0.67231929, 0.71593691],
[0.3414973 , 0.86036798, 0.42524077],
[0.02504903, 0.83300711, 0.30334608]])
Lecture d’un Fichier avec des Données Tabulaires
En général, les données que nous souhaitons lire ou enregistrer sont au format texturé (TXT ou CSV, par exemple). Nous pouvons enregistrer les données dans ce format, au lieu du format binaire, car les fichiers peuvent ensuite être lus indépendamment par d’autres scripts NumPy ou avec une autre application. Prenons par exemple le cas d'un ensemble de données au format CSV (Comma-Separated Values), dans lequel les données sont collectées dans un format tabulaire où les valeurs sont séparées par des virgules.
Fichier data_part5.csv contient les données suivantes :
N, valeur1, valeur2, valeur3
1, 321, 4.1, 22
2, 110, 0.2, 16
3, 233, 2.1, 18
Pour pouvoir lire nos données à partir d’un fichier texte et d’insérer ces valeurs dans un tableau, Numpy fournit une fonction appelée genfromtxt(). Normalement, cette fonction prend trois arguments: le nom du fichier contenant les données, le caractère qui sépare les valeurs les unes des autres (dans ce cas une virgule), et si les données contiennent un entête de colonne :
>>> data = np.genfromtxt('data_part5.csv', delimiter = ' , ', names = True)
>>> data
array([(1., 321., 4.1, 22.), (2., 110., 0.2, 16.), (3., 233., 2.1, 18.)],
dtype=[('N', '<f8'), ('valeur1', '<f8'), ('valeur2', '<f8'), ('valeur3', '<f8')])
Au bas du tableau, vous pouvez trouver les en-têtes de colonne contenus dans le fichier. Ces en-têtes peuvent être considérés comme des étiquettes qui agissent comme des index pour extraire les valeurs par colonne:
>>> data[ 'N' ]
array([1., 2., 3.])
Au lieu de cela, en utilisant les index numériques de manière classique, vous extrairez des données correspondant aux lignes.
>>> data[0]
(1., 321., 4.1, 22.)