Appliquer une permutation sur les éléments d'une matrice 2D
Bonjour,
Je cherche à appliquer une permutation de range(N) sur les éléments une matrice 2D (numpy.array) constituée de nombres entiers entre 0 et N-1.
Je fais ceci :
Code:
1 2 3 4 5 6 7 8
| # appliquer une permutation
def apply_permut(A,perm):
B=np.empty_like(A) # A est une matrice 2D d'entiers dans range(N)
l,c = A.shape
for i in range(l):
for j in range(c):
B[i,j]=perm[A[i,j]] # perm est une permutation de range(N)
return B |
Mais c'est très lent...8O
Y a-t-il plus rapide et plus "python" pour faire ceci ?
Merci de votre aide :) .
Ergatif