On Sat, Jan 23, 2010 at 4:00 PM, Keith Goodman <kwgood...@gmail.com> wrote:
> On Sat, Jan 23, 2010 at 2:31 PM, Alan G Isaac <ais...@american.edu> wrote: > > On 1/23/2010 5:01 PM, Anne Archibald wrote: > >> If both arrays are "C contiguous", or more generally contiguous blocks > >> of memory with the same strided structure, you might get faster > >> copying by flattening them first, so that it can go in a single > >> memcpy(). > > > > I may misuderstand this. Did you just mean > > x.flat = y.flat > > ? > > > > If so, I find that to be *much* slower. > > > > Thanks, > > Alan > > > > > > x = np.random.random((1000,1000)) > > y = x.copy() > > t0 = time.clock() > > for t in range(1000): x = y.copy() > > print(time.clock() - t0) > > t0 = time.clock() > > for t in range(1000): x[:,:] = y > > print(time.clock() - t0) > > t0 = time.clock() > > for t in range(1000): x.flat = y.flat > > print(time.clock() - t0) > > I don't know what a view is, but it is fast: > > x = y.view() > > In this case x isn't a copy of y, it is a reference to the same data in memory. It is fast because no copying is done. Chuck
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion