Hadi
Hadi

Reputation: 5598

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't know why it returns None, according to its doc it should be worked! I can't figure out the problem.

I'm using PyCharm 3.1 on Windows 7.

Upvotes: 3

Views: 10685

Answers (4)

Will
Will

Reputation: 1543

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])

Upvotes: 11

user3666197
user3666197

Reputation: 1

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
        [1 7 5 2 9 4 3 6 0 8]

        This function only shuffles the array along the first index of a
        multi-dimensional array:

        >>> arr = np.arange(9).reshape((3, 3))
        >>> np.random.shuffle(arr)
        >>> arr
        array([[3, 4, 5],
               [6, 7, 8],
               [0, 1, 2]])

Upvotes: 2

b10n
b10n

Reputation: 1186

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.

Upvotes: 1

Steve Tjoa
Steve Tjoa

Reputation: 61044

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)
None

In [6]: x
Out[6]: [8, 7, 3, 4, 6, 0, 5, 1, 2]

Upvotes: 10

Related Questions