Bonjour,
J'ai un petit soucis de temps de calcul sur une matrice numpy, et j'aurais besoin d'aide.
J'ai une matrice de taille n*n ( 10 < n < 9000 environ) qui ne peut contenir que 3 valeurs : 0, 1 ou 2
0 = Noir
1 = Rouge
2 = Vert
Le but étant d'obtenir:
C'est à dire d'étendre le rouge (1) sur le noir (0) en définissant le vert (2) comme délimitation.
Un moyen assez direct de le faire serait:
Le problème étant que c'est bien trop lent ! Réaliser les calculs un par un prend trop de temps. On peut penser à rajouter quelques lignes pour ne pas effectuer de calcul dans la zone entre la bordure et la ligne verte mais cela ne change pas le problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 for i in range(n): for j in range(n): if liste[i,j] == 1 and liste[i,j+1] == 0: liste[i,j+1] = 1
Je voulais donc savoir s'il y avait un moyen d'utiliser les fonctionnalités de numpy (notamment le multiprocessing sur les matrices) afin d'accélérer le tout.
Je m'en remets à vous.
Merci !
Partager