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

Reply via email to