[Numpy-discussion] Request for enhancement to numpy.random.shuffle
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>>
> > 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