In PR https://github.com/numpy/numpy/pull/13812, Thrasibule rewrote the algorithm used with a faster alternative branch for some cases. The faster algorithm does not necessarily shuffle the results, so for instance gen.choice(2000, 2000, replace=False) may simply return arange(2000). In the old code the result is always shuffled. We propose adding a new kwarg "shuffle" that defaults to True. Users looking for maximum performance may choose to use shuffle=False.
Since this is a behavioral change (although only in the new Generator class, the new code will not be used in RandomState), we are proposing it to the mailing list
Any thoughts?
Matti
This sounds like a welcome backwards compatible option for more performance. I imagine there are plenty of applications (e.g., sets) where shuffled order doesn't matter.
+1 from me.
On Tue, Jul 9, 2019 at 5:32 PM Matti Picus matti.picus@gmail.com wrote:
In PR https://github.com/numpy/numpy/pull/13812, Thrasibule rewrote the algorithm used with a faster alternative branch for some cases. The faster algorithm does not necessarily shuffle the results, so for instance gen.choice(2000, 2000, replace=False) may simply return arange(2000). In the old code the result is always shuffled. We propose adding a new kwarg "shuffle" that defaults to True. Users looking for maximum performance may choose to use shuffle=False.
Since this is a behavioral change (although only in the new Generator class, the new code will not be used in RandomState), we are proposing it to the mailing list
Any thoughts?
Matti
NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion