[Numpy-discussion] Request for enhancement to numpy.random.shuffle
josef.pktd at gmail.com
josef.pktd at gmail.com
Sun Oct 12 11:20:14 EDT 2014
On Sun, Oct 12, 2014 at 10:54 AM, Warren Weckesser
<warren.weckesser at gmail.com> wrote:
> On Sun, Oct 12, 2014 at 7:57 AM, Robert Kern <robert.kern at gmail.com> wrote:
>> On Sat, Oct 11, 2014 at 11:51 PM, Warren Weckesser
>> <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 many similar functions.
What's the difference between permute, shuffle and scramble?
And how do I find or remember which is which?
>> That said, I would just make the axis=None behavior the same for both
>> methods. axis=None does *not* mean "treat this like a single
>> monolithic blob" in any of the axis=-having methods; it means "flatten
>> the array and do the operation on the single flattened axis". I think
>> the latter behavior is a reasonable interpretation of axis=None for
>> both methods.
> Sounds good to me.
+1 (since all the arguments have been already given
- Why does sort treat columns independently instead of sorting rows?
- because there is lexsort
- Oh, lexsort, I haven thought about it in 5 years. It's not even next
to sort in the pop up code completion
>> Robert Kern
>> NumPy-Discussion mailing list
>> NumPy-Discussion at scipy.org
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
More information about the NumPy-Discussion