En complément de @ecatmur, voici une brève explication. Pour commencer, j'ai créé un tableau de forme 3,3 avec des chiffres de 0 à 8.
import numpy as np
x1 = np.array(np.arange(0,9)).reshape(3,3) #array with shape 3,3 and have numbers from 0 to 8
#step1: using np.random.permutation
x_per = np.random.permutation(x1)
print('x_per:', x_per)
print('x_1:', x_1)
#Inference: x1 is not changed and x_per has its rows randomly changed
#The outcome will be
x1: [[0 1 2]
[3 4 5]
[6 7 8]]
x_per:[[3 4 5]
[0 1 2]
[6 7 8]]
#Lets apply shuffling
x2 = np.array(range(9)).reshape(3,3)
x2_shuffle = np.random.shuffle(x2)
print('x2_shuffle:', x2_shuffle)
print('x2', x2)
#Outcome:
x2_shuffle: None
x2 [[3 4 5]
[0 1 2]
[6 7 8]]
La déduction clé est : Lorsque x est un tableau, numpy.random.permutation(x) et numpy.random.shuffle(x) peuvent tous deux permuter les éléments de x de façon aléatoire le long du premier axe. le long du premier axe. numpy.random.permutation(x) retourne en fait une nouvelle variable et les données originales ne sont pas modifiées. Alors que numpy.random.shuffle(x) a changé les données originales et ne retourne pas une nouvelle variable. J'ai juste essayé de montrer avec un exemple afin qu'il puisse aider les autres. Merci !