Ouverture d’un fichier de données CSV
Dans cet exemple, nous souhaitons récupérer les données acquises par l’intermédiaire d’un oscilloscope. Ces données sont stockées sous la forme d’un fichier de données de type CSV (tableur). Ce fichier peut être télécharger ci-dessous :
Il existe plusieurs méthodes pour cela : en utilisant la bibliothèque Numpy ou la bibliothèque Pandas.
Utilisation de Numpy
Pour récupérer ces données dans ce type de fichier, il existe la fonction genfromtxt de la bibliothèque Numpy.
Cette fonction nécessite au moins un paramètre qui est une chaine de caractère qui correspond au chemin vers le fichier.
D’autres paramètres peuvent être ajoutés :
- delimiter : qui correspond au délimiteur utilisé dans le fichier CSV pour séparer deux colonnes ;
- skip_header : qui permet de ne pas prendre en compte certaines lignes d’en-tête en début de fichier (souvent des commentaires fournis par le système qui à générer le fichier).
import numpy as np data = np.genfromtxt('test_oscillo_sin_2k_2Vpp_4k', delimiter=',', skip_header = 3) print(data) x = data[:,1] y = data[:,2]
Utilisation de Pandas
Pour récupérer ces données dans ce type de fichier, il existe la fonction read_csv de la bibliothèque Pandas. Cette fonction transforme les données en un objet de type dataframe de la bibliothèque Pandas.
Cette fonction nécessite au moins un paramètre qui est une chaine de caractère qui correspond au chemin vers le fichier.
D’autres paramètres peuvent être ajoutés :
- header : qui permet de ne pas prendre en compte certaines lignes d’en-tête en début de fichier (souvent des commentaires fournis par le système qui à générer le fichier).
Il est possible de récupérer la première ligne qui ne sont pas des données mais les noms des différentes colonnes. Les colonnes de données portent alors le nom de cette première ligne. Dans l’exemple suivant, la première colonne s’appelle ‘Time(s)’.
df = pandas.read_csv('test_oscillo_AM_2k_400_50p_4k.csv', header=2) print(df['Time(s)'])
Il est possible de renommer les colonnes par l’intermédiaire de la fonction rename associée aux objets de type dataframe de la bibliothèque Pandas.
Par exemple, ici, on renomme les colonnes ‘Time(s)’ en ‘Time’ et ‘Volt(V)’ en ‘Volt’. L’objet temps, de l’exemple suivant, est alors un vecteur comportant toutes les valeurs de la première colonne de données.
df.rename(columns={'Time(s)':'Time','Volt(V)':'Volt'}, inplace=True) temps = df.Time
Pour pouvoir transformer cette série Pandas en un vecteur Numpy, il est possible d’utiliser la fonction to_numpy de la façon suivante :
temps_vect = df.Time.to_numpy()