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), a
You'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"