Numpy.random.shuffle Returns None
I installed numpy1.8.2 and then I tried the following code: import numpy as np a = np.arange(10) print a, np.random.shuffle(a) but its output is : [0 1 2 3 4 5 6 7 8 9] None I don
Solution 1:
shuffle works in place and therefore does not return a value.
In [1]: x =range(9)
In [2]: x
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8]
In [5]: print numpy.random.shuffle(x)
NoneIn [6]: x
Out[6]: [8, 7, 3, 4, 6, 0, 5, 1, 2]
Solution 2:
If you want to 'shuffle' out of place then use np.random.permutation.
e.g.
In [1]: import numpy as np
In [2]: np.random.permutation([1,2,3,4,5])
Out[2]: array([3, 5, 1, 4, 2])
Solution 3:
Sir, it must output that way. .shuffle() returns None
>>> import numpy as np
>>> print np.random.shuffle.__doc__
shuffle(x)
Modify a sequence in-place by shuffling its contents.
Parameters
----------
x : array_like
The array or list to be shuffled.
Returns
-------
None
Examples
--------
>>> arr = np.arange(10)
>>> np.random.shuffle(arr)
>>> arr
[1752943608]
This functiononlyshufflesthearrayalongthefirstindexofamulti-dimensionalarray:
>>> arr = np.arange(9).reshape((3, 3))
>>> np.random.shuffle(arr)
>>> arr
array([[3, 4, 5],
[6, 7, 8],
[0, 1, 2]])
Solution 4:
np.random.shuffle doesn't return anything but rather shuffles the array in place.
Try the following instead
print np.random.shuffle(a), aYou'll see that your array was indeed shuffled as you applied the function to the array before printing it.
Post a Comment for "Numpy.random.shuffle Returns None"