NumPy est le module incontournable lorsque l'on veut faire un code numérique en utilisant Python. Néanmoins, pour avoir des codes performants, il est souvent nécessaire de repasser à des langages bas niveau. Nous présenterons ici différents outils Python qui le font à notre place et nous permettent d'avoir des gains significatifs sur les temps de calcul.
Le langage Python est maintenant largement utilisé au sein de la communauté du calcul numérique en s'appuyant fortement sur le module NumPy qui permet de gérer les tableaux. Bien que ce module soit optimisé pour les opérations élémentaires (addition de deux vecteurs, multiplication de matrices, ...), il est souvent nécessaire d'optimiser certaines parties du code avec d'autres outils pour obtenir des performances proches d'un langage bas niveau (C ou Fortran). Une large palette est offerte aux développeurs pour optimiser leur code: Cython, Numba, PyPy, Pythran, Parakeet, ... La plupart de ces outils utilise de la compilation "just in time" permettant de générer du code optimisé à l'exécution du programme. Leur syntaxe est très simple et ils peuvent être utilisés sans connaissances particulières. Lors de cette présentation, nous aborderons quelques uns de ces outils ainsi que leurs utilisations sur des cas simples. Nous ferons des comparaisons de performances entre ces outils et un code écrit en langage bas niveau.