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 : Sélectionner tout - Visualiser dans une fenêtre à part
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...
Y a-t-il plus rapide et plus "python" pour faire ceci ?
Merci de votre aide .
Ergatif