[Numpy-discussion] numpy.random.shuffle
Christopher Barker
Chris.Barker at noaa.gov
Wed Nov 22 10:53:19 CST 2006
Robert Kern wrote:
> This is really a thinko on my part.
What, exactly, is a thinko?
> I copied the algorithm from Python's random
> module. At the core of it is a set of swaps:
>
> x[i], x[j] = x[j], x[i]
>
> With the kind of sequences that the stdlib random module is expecting, that
> makes perfect sense. However, with N-dim arrays (N > 1), x[i] is a *view* into
> the array. By the time that x[j] = x[i] gets executed, x[i] = x[j] has already
> executed and the underlying memory that x[i] points to has been modified.
wouldn't something like:
temp = x[i].copy()
x[i], x[j] = x[j], temp
work?
In any case, it should raise an error if ndim > 1, rather than giving a
wrong result.
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker at noaa.gov
More information about the Numpy-discussion
mailing list