Dans ce cours, nous allons travailler avec les quatre modules suivants :
Si ces modules ne sont pas disponibles sur votre machine personnelle, installer-les.
Au début de chaque session, il est obligatoire d'importer les modules, qu'on utlisera par la suite.
Pour ce notebook, nous aurons besoin seulement des deux modules suivants :
import pandas as pd
import numpy as np
La fonction help donne des explications sur une fonction prédéfinie. Exemple :
help(np.random.rand)
Ou encore :
a = np.arange(5)
help(a.sum)
Pour connaître toutes les fonctions d'un module, écrivez le nom du module suivi d'un point, ensuite appuyer longtemps sur la touche TAB. Cela fait apparaître une liste avec toutes les fonctions de ce module.
Essayer pour np, ensuite pour np.random :
Les données d'une étude statistique ont typiquement la forme d'une séquence de valeurs observées ou d'un tableau de données (à plusieurs colonnes et plusieurs lignes). Dans le module Pandas, on utilise les objets Series et Dataframe pour les données observées.
Une série (Series) est une liste de valeurs. Voici quelques exemples.
S1 = pd.Series([1,4,0,7,4,7])
S2 = pd.Series([1.,4,0,7,4,7])
S3 = pd.Series([1.,.5,0,7,4,7],index=list('abcdef'))
S4 = pd.Series(['hello','friends','byebye'])
S5 = pd.Series([True, False,False,True])
S6 = pd.Series([1.,'hello',False,5])
Affichez toutes les séries ainsi définies et observez les différents types des éléments de la série.
Notez que, par défaut, les éléments d'une série sont indexés par des entiers commençant par 0.
S1
S2
S3
S4
S5
S6
S3.values
S3.index
S1[0]
S1[:]
S1[2:4]
S1[[4,1,0]]
S1>3
S1[S1>3]
S3['b']
Voici quelques fonctions de base pour les séries. Essayez de les comprendre (toutes!) :
S1.size
S1.prod()
S1.sum()
S1.cumsum()
S1.max()
S1.argmax()
S3.round()
np.ceil(S3)
np.floor(S3)
S1.unique()
S1.sort_values()
S1.sort_index(ascending=False)
S1.isin([1,3,5,7,9])
La valeur NaN (Not a number) est utilisé pour indiquer le résultat d'un calcul inadmissible ou pour indiquer des valeurs manquantes (lors d'une importation des données à partir d'un fichier).
Essayez de comprendre :
S2.count()
S2[3] = np.inf-np.inf
S2
S2.count()
S2.isnull()
S2 = S2.dropna()
S2
Que font les fonctions suivantes ?
S1.mean()
S1.median()
S1.quantile(q=[.25,.5,.75])
S1.var()
S1.std()
S1.std()==np.sqrt(S1.var())
S1.describe()
En statistique, le plus souvent, il faut importer les données à partir d'un fichier, qui est souvent un fichier en format csv (= comma-separated values).
Le fichier peut se trouver sur votre ordinateur ou il est disponible sur internet.
Dans les deux cas, on utilise la fonction pd.read_csv pour importer les données.
Le premier argument de pd.read_csv est le chemin vers le fichier ou l'URL (= Uniform Resource Locator = adresse web).
Afin d'obtenir un objet de type Series, il faut que
le fichier .csv ne contient qu'une colonne de valeurs et
il faut utiliser l'option squeeze=True dans l'appel de pd.read_csv
Nous allons travailler sur des données en neuroscience. Nous observons le temps d'attente entre deux activités de neurones dans le cerveau. Plus précisément, les données contiennent les intervals de temps entre deux potentiels post-synaptiques miniatures enregistrés à la jonction neuro-musculaire.
Les données sont disponible à l'adresse http://www.proba.jussieu.fr/pageperso/rebafka/nerve.csv. Importer les données sous forme d'une Series.
Vérifier si le fichier contient des valeurs NaN. Si oui, supprimer-les.
Combien d'observations contient ce jeu de données ?
Calculer les caractéristiques statistiques de ces données (comme la moyenne, la médiane, les valeurs maximiale et minimale, la variance et l'écart-type).
Calculer la moyenne des valeurs maximale et minimale. Ensuite, comparer cette valeur à la moyenne et la médiane. Comment interpréter le fait que ces trois caractéristiques sont assez différentes ?
Combien d'observations sont inférieures à 0.1 ? Combien d'observations sont dans l'intervalle [0.1,0.2] ? Et combien sont supérieures à 1 ?