Installer et utiliser Python#

Python est un langage moderne et de haut niveau qui est de plus en plus utilisé dans l’industrie et les disciplines scientifiques. Cette page décrit comment :

  • installer Python et Jupyter avec la distribution Anaconda,

  • écrire des notebooks avec Jupyter Lab,

  • utiliser des modules additionnels et commencer à programmer.

Installation#

Anaconda est une distribution Python spécialisée notamment dans la science des données et l’apprentissage machine. Pour un usage individuel, elle est gratuite et suffisante pour effectuer les TP de traitement du signal. Téléchargez et installer Anaconda si Python n’est pas déjà présent sur votre ordinateur. Attention, choisissez la version 3 (ou supérieure) de Python !

En plus de regrouper le cœur de Python et les modules scientifiques principaux, Anaconda propose un environnement de développement pour écrire des programmes appelé JupyterLab. C’est un logiciel libre et très moderne pour écrire des notebooks.

La figure 37 montre l’interface de JupyterLab : elle est suffisamment intuitive pour se débrouiller sans aide, mais vous pouvez toujours consulter cette page pour en savoir plus.

https://jupyterlab.readthedocs.io/en/latest/_images/jupyterlab.png

Fig. 37 JupyterLab.#

Normalement, JupyterLab est inclus dans l’installation d’Anaconda. Mais si ce n’est pas le cas, vous trouverez les instructions pour installer JupyterLab ici.

Pour ouvrir JupyterLab, tapez dans un terminal jupyter lab ou jupyter-lab.

Notebooks Python#

Après avoir installé Anaconda, vous êtes prêt à écrire et exécuter des notebooks Python ! Un notebook est un fichier contenant du code, mais également les résultats produits par ce code (comme des valeurs numériques ou des images) et du texte qui accompagnera le code. Un notebook est divisé en cellules qui peuvent être de deux types : « code » ou « markdown ». En appuyant sur Ctrl + Entrée dans une cellule, le code de celle-ci (et uniquement de celle-ci) est exécuté. Si à la place vous appuyez sur Shift + Entrée, alors le code de la cellule courante est exécuté et le curseur passe sur la cellule suivante.

Cellules de code#

Les cellules contiennent par défaut du code Python (input) et le résultat (output).

Par exemple le code (input) suivant :

a = 21
b = 42
c = a + b
print("La valeur est " + str(c))

produit le résultat (output) :

La valeur est 63

Cellules Markdown#

Il est possible de changer une cellule de « code » en cellule « markdown » en sélectionnant Markdown dans la liste déroulante de la barre d’outils. Le Markdown est aussi un langage informatique, mais il sert à mettre en forme du texte (par exemple en écrivant des titres, des listes, des équations…). Cela peut être utile pour ajouter des notes et commenter votre code et ses résultats.

Ainsi :

### Définition

la _sinusoïde_ a pour expression :

$$
  x(t) = A \sin(2 \pi f t + \varphi)
$$

où :
* $A$ est l'amplitude
* $f$ est la fréquence
* $\varphi$ est le déphasage

produit :

Définition

la sinusoïde a pour expression :

\[ x(t) = A \sin(2 \pi f t + \varphi) \]

où :

  • \(A\) est l’amplitude

  • \(f\) est la fréquence

  • \(\varphi\) est le déphasage

Vous trouverez le résumé de la syntaxe Markdown sur cette page.

Écrire un programme Python#

Le cœur du langage Python ne dispose pas de toutes les fonctions utiles pour la programmation scientifique, et en particulier le traitement du signal. Il est donc nécessaire d’importer des modules dans votre code (normalement, ces modules sont installés avec Anaconda). En général, nous n’utiliserons que deux modules :

  • numpy, qui fournit des fonctions générales pour la programmation scientifique,

  • matplotlib, pour afficher les signaux.

Les modules Python sont importés dans votre code en utilisant l’instruction import.

Par exemple, le code suivant affiche la sinusoïde \(\sin(2\pi f n)\) de fréquence \(f=0,3\) Hz :

# Une ligne qui commence par le symbole # est un commentaire
# et n'est donc pas exécutée

# Import du module 'numpy' et renommage en 'np' car c'est
# plus court à écrire
import numpy as np

# Import du sous-module 'pyplot' du module 'matplotlib',
# et renommage en 'plt'
import matplotlib.pyplot as plt

# Abscisses sur lesquelles sera calculée la sinusoïde :
# un point tous les 0,1 s entre 0 et 10 s
n = np.arange(0, 10, 0.1)

# Fréquence de la sinuoïde
f = 0.3

# Sinusoïde : c'est tout simple, il suffit d'écrire
# l'expression mathématique 😎
x = np.sin(2*np.pi*f*n)

# Création d'une figure, dont on définit la taille
plt.figure(figsize=(8,4))

# Affichage de la sinusoïde (dans la figure créée)
plt.plot(n, x, label="sinusoïde")

# Légende
plt.legend()

# Légende des axes et titre
plt.xlabel("$n$")
plt.ylabel("$x[n]$")
plt.title("Une belle sinusoïde")

# Affichage (pas toujours nécessaire, mais parfois indispensable)
plt.show()
../_images/eace3c1c9b52b28f34a107310299d1e83f20e6bd0ef857acdb0f8630a4b4e41f.png