What is the difference between numpy.random.shuffle(x)
and numpy.random.permutation(x)
?
I have read the doc pages but I could not understand if there was any difference between the two when I just want to randomly shuffle the elements of an array.
To be more precise suppose I have an array x=[1,4,2,8]
.
If I want to generate random permutations of x, then what is the difference between shuffle(x)
and permutation(x)
?
That is, the permutation is a group element and the shuffle is the result of its action on a particular word.
Modify a sequence in-place by shuffling its contents. This function only shuffles the array along the first axis of a multi-dimensional array. The order of sub-arrays is changed but their contents remains the same.
numpy.random. permutation (x) Randomly permute a sequence, or return a permuted range. If x is a multi-dimensional array, it is only shuffled along its first index.
You can use numpy. random. shuffle() . This function only shuffles the array along the first axis of a multi-dimensional array.
np.random.permutation
has two differences from np.random.shuffle
:
np.random.shuffle
shuffles the array inplacenp.random.shuffle(np.arange(n))
If x is an integer, randomly permute np.arange(x). If x is an array, make a copy and shuffle the elements randomly.
The source code might help to understand this:
3280 def permutation(self, object x): ... 3307 if isinstance(x, (int, np.integer)): 3308 arr = np.arange(x) 3309 else: 3310 arr = np.array(x) 3311 self.shuffle(arr) 3312 return arr
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With