Annexe D — NumPy et SciPy

NumPy fournit les tableaux et calculs numériques; SciPy ajoute des méthodes scientifiques et statistiques. Dans le cours:

import numpy as np
from scipy import stats

NumPy

np.abs()

Documentation officielle

Objectif: calculer la valeur absolue de chaque valeur numérique.

Arguments principaux:

  • x (Series ou tableau numérique): valeurs dont le signe doit être supprimé.

Exemple:

distance_equateur = np.abs(df["Latitude"])
1
Convertir les latitudes nord et sud en distances angulaires non signées à l’équateur.

À retenir: la valeur absolue supprime le signe. Elle convient lorsque seule l’amplitude compte, mais pas lorsque la direction nord–sud porte une information scientifique.

np.log10()

Documentation officielle

Objectif: calculer le logarithme décimal de valeurs positives.

Arguments principaux:

  • x (Series ou tableau numérique): valeurs strictement positives à transformer en logarithmes décimaux.

Exemple:

df["log_aire"] = np.log10(df["aire"])
1
Transformer les rapports multiplicatifs en différences additives.

À retenir: zéro et les valeurs négatives ne sont pas définis sur cette échelle; ne les supprimez pas sans justification scientifique.

np.linspace()

Documentation officielle

Objectif: créer des valeurs régulièrement espacées dans un intervalle.

Arguments principaux:

  • start (float): première valeur de l’intervalle;
  • stop (float): dernière valeur de l’intervalle;
  • num (int): nombre total de valeurs régulièrement espacées à créer.

Exemple:

grille = np.linspace(aire.min(), aire.max(), 200)
1
Créer une grille lisse limitée au domaine observé.

À retenir: une grille sert à tracer le modèle; elle ne crée pas de nouvelles observations.

SciPy — stats

stats.pearsonr()

Documentation officielle

Objectif: calculer la corrélation linéaire de Pearson et tester une corrélation nulle.

Arguments principaux:

  • x (Series ou tableau numérique): valeurs de la première variable;
  • y (Series ou tableau numérique): valeurs de la seconde variable, dans le même ordre et de même longueur que x.

Exemple:

resultat = stats.pearsonr(df["aire"], df["magnitude"])
1
Accéder ensuite à resultat.statistic et resultat.pvalue.

À retenir: Pearson résume une relation linéaire; une petite valeur \(p\) ne prouve ni causalité ni importance scientifique.

stats.spearmanr()

Documentation officielle

Objectif: calculer une corrélation monotone fondée sur les rangs.

Arguments principaux:

  • a (Series ou tableau numérique): valeurs de la première variable;
  • b (Series ou tableau numérique): valeurs de la seconde variable, dans le même ordre et de même longueur que a;
  • nan_policy (str): traitement des valeurs manquantes; "omit" les exclut du calcul.

Exemple:

resultat = stats.spearmanr(df["aire"], df["magnitude"])
1
Comparer l’ordre relatif des observations plutôt que leurs distances brutes.

À retenir: Spearman tolère une courbure monotone, mais reste sensible aux regroupements et à la non-indépendance.

stats.ttest_ind()

Documentation officielle

Objectif: comparer les moyennes de deux groupes indépendants.

Arguments principaux:

  • a (Series ou tableau numérique): observations du premier groupe;
  • b (Series ou tableau numérique): observations indépendantes du second groupe;
  • equal_var (bool): True applique le test de Student avec une variance commune; False applique le test de Welch sans imposer cette égalité;
  • confidence_level (float): niveau transmis ensuite à confidence_interval(), sous forme de proportion, par exemple 0.95 pour un intervalle à 95 %.

Exemple:

test = stats.ttest_ind(groupe_a, groupe_b, equal_var=False)

t = test.statistic
p = test.pvalue

intervalle = test.confidence_interval(confidence_level=0.95)
borne_basse = intervalle.low
borne_haute = intervalle.high
1
Utiliser Welch lorsque les variances ou effectifs peuvent différer; le test de Student classique suppose une même variance dans les deux populations.
2
Accéder à la statistique \(t\) avec l’attribut .statistic.
3
Accéder à la valeur \(p\) avec l’attribut .pvalue.
4
Calculer ici l’intervalle de confiance à 95 % de la différence moyenne groupe_a - groupe_b.
5
Accéder aux bornes inférieure et supérieure avec les attributs .low et .high.

À retenir: l’ordre des groupes détermine le signe de \(t\) et de l’intervalle, car SciPy calcule groupe_a - groupe_b. Le test porte sur une différence de moyennes de population. Formulez les groupes et l’hypothèse avant de voir la valeur \(p\); rapportez aussi l’amplitude de la différence, son intervalle de confiance et les distributions.