Economie Statistique

Array, Matrix#

Le langage Python est trop lent pour écrire des algorithmes d’optimisation seulement dans ce langage. Le compromis trouvé par le langage fut de rendre accessibles en Python des librairies rapides et codées en C++, voire en fortran. Une grande partie des algorithmes s’appuient sur le calcul matriciel et ce que propose la librairies numpy. Pour que cela fonctionne, il faut transvaser les données depuis le Python dans un structure de données propre à numpy : ce sont les array. Le machine learning commence bien souvent par convertir les données en array et à les manipuler sous cette forme. Pour simplifier, avec numpy, le code contient une boucle de moins. L’addition de deux colonnes en Python seul s’écrirait de la sorte :

mat = array(...)
for i in range(0, mat.shape[0]):
    mat[i, 0] += mat[i, 1]

Mais il est beaucoup plus efficace de s’écrire comme ceci :

mat = array(...)
mat[:, 0] += mat[:, 1]

Les deux programmes sont équivalents d’un point de vue algorithmique à ceci près que l’addition dans le second exemple utilise un code écrit en C++. C’est un langage bas niveau, donc débarassé de tout ce que le langage Python ajoute pour simplifier l’écriture des programmes. Etre bas niveau permet également d’utiliser des accélérations offertes par les processeurs récents comme celle offertes par la librairie Math Kernel Library qui utilise les instructions processeur SIMD et MIMD.

Notebooks

Lectures

Modules