[Numpy-discussion] Request for enhancement to numpy.random.shuffle

Sebastian sebix at sebix.at
Sun Oct 12 12:14:33 EDT 2014

On 2014-10-12 16:54, Warren Weckesser wrote:
> On Sun, Oct 12, 2014 at 7:57 AM, Robert Kern <robert.kern at gmail.com
> <mailto:robert.kern at gmail.com>> wrote:
>     On Sat, Oct 11, 2014 at 11:51 PM, Warren Weckesser
>     <warren.weckesser at gmail.com <mailto:warren.weckesser at gmail.com>>
>     wrote:
>     > A small wart in this API is the meaning of
>     >
>     >   shuffle(a, independent=False, axis=None)
>     >
>     > It could be argued that the correct behavior is to leave the
>     > array unchanged. (The current behavior can be interpreted as
>     > shuffling a 1-d sequence of monolithic blobs; the axis argument
>     > specifies which axis of the array corresponds to the
>     > sequence index.  Then `axis=None` means the argument is
>     > a single monolithic blob, so there is nothing to shuffle.)
>     > Or an error could be raised.
>     >
>     > What do you think?
>     It seems to me a perfectly good reason to have two methods instead of
>     one. I can't imagine when I wouldn't be using a literal True or False
>     for this, so it really should be two different methods.
> I agree, and my first inclination was to propose a different method
> (and I had the bikeshedding conversation with myself about the name:
> "disarrange", "scramble", "disorder", "randomize", "ashuffle", some
> other variation of the word "shuffle", ...), but I figured the first
> thing folks would say is "Why not just add options to shuffle?"  So,
> choose your battles and all that.
> What do other folks think of making a separate method
I'm not a fan of more methods with similar functionality in Numpy. It's
already hard to overlook the existing functions and all their possible
applications and variants. The axis=None proposal for shuffling all
items is very intuitive.

I think we don't want to take the path of matlab: a huge amount of
powerful functions, but few people know of their powerful possibilities.


More information about the NumPy-Discussion mailing list