Posté par
Gilles G.() le 15/11/2006 à 08:57. (lien). Évalué à 2.
J'utilise Python pour le calcul numérique depuis pas très longtemps, mais pour les perfs, il n'y a vraiment aucun souci par rapport à Matlab.
Par contre, dire que Matlab, c'est lent par rapport à du C/C++, c'est un peu poussé je trouve. En écrivant correctement le code Matlab, tu peux presque tout vectoriser donc ça quand même très vite. Par contre, si tu as beaucoup de conditions ou de tests de variables, ça peu vite chuter.
L'avantage de python par rapport à Matlab, c'est qu'on a un fonctionnement par référence, ce qui évite les copies inutiles des objets. Au début, c'est un peu déroutant, parce que quand on écrit:
b = a[:,1]
b est juste une référence à une partie de a, donc en modifiant b, on modifie a, mais l'avantage c'est qu'on évite de dupliquer inutilement des données, ce qui peut parfois être très rentable en temps de calcul.
Evidemment, on peut copier explicitement un objet.
Un gros avantage de Python est aussi que l'on peut écrire du code propre et réutilisable plus facilement qu'avec Matlab (à mon avis). En plus, on peut documenter son code proprement avec epydoc.
Re: benchs/ tests
J'utilise Python pour le calcul numérique depuis pas très longtemps, mais pour les perfs, il n'y a vraiment aucun souci par rapport à Matlab.
Par contre, dire que Matlab, c'est lent par rapport à du C/C++, c'est un peu poussé je trouve. En écrivant correctement le code Matlab, tu peux presque tout vectoriser donc ça quand même très vite. Par contre, si tu as beaucoup de conditions ou de tests de variables, ça peu vite chuter.
L'avantage de python par rapport à Matlab, c'est qu'on a un fonctionnement par référence, ce qui évite les copies inutiles des objets. Au début, c'est un peu déroutant, parce que quand on écrit:
b = a[:,1]
b est juste une référence à une partie de a, donc en modifiant b, on modifie a, mais l'avantage c'est qu'on évite de dupliquer inutilement des données, ce qui peut parfois être très rentable en temps de calcul.
Evidemment, on peut copier explicitement un objet.
Un gros avantage de Python est aussi que l'on peut écrire du code propre et réutilisable plus facilement qu'avec Matlab (à mon avis). En plus, on peut documenter son code proprement avec epydoc.
[ Répondre ]