Bonjour bonjour,

Voilà l'histoire : je suis en cours de finalisation d'un prog Python, et j'essaie entre autres de gagner du temps sur l'exécution.
Or une fonction particulière de mon programme prend beaucoup de temps, et j'ose suputer qu'il existe un moyen détourné plus rapide d'arriver à mes fins!

Voilà la bête :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
import numarray as n

def miseEchelle(entree, long, moy):
sortie = list() for i in range(0, long, moy): sortie.append ( n.average ( entree[i:i + moy - 1] ) ) return n.array(sortie, 'Float32')
Comme c'est écrit, le but de la fonction est de mettre à l'échelle une image. La fonction s'applique à une ligne de 15000, 20000, 40000 pixels, le pas de moyennage est en général de 30, et l'image compte 800 lignes... ce qui donne:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
for i in range(800):
    # lecture d'une ligne
    ligne_moy = miseEchelle(ligne, 20000, 30)
    # ecriture de ligne_moy
Tout est simplifié bien sûr. La boucle prend chez moi environ 100 s (j'utilise déjà psyco, et oui l'ordi est vieux!! ) et a priori à cause de average.

Bon... quelqu'un est inspiré?