Mon, 07 Mar 2011 10:01:21 -0500, Neal Becker wrote:
> reshape can view a 1d array as non-overlapping segments.
> 
> Is there a convenient way to view a 1d array as a 2d array of
> overlapping segments?
> 
> nonoverlapping:
> l: segment length
> k: overlap
> u is the 1d array
> v is a 2d array
> 
> v[i] = u[l*i:(l+1)*i]
> 
> overlapping:
> v[i] = u[l*i:(l+1)*i+k]

Yes, specify

        from numpy.lib.stride_tricks import as_strided

        strides = (u.dtype.itemsize*l, u.dtype.itemsize)
        shape = (num_slices, l+k)
        v = as_strided(u, strides=strides, shape=shape)

num_slices needs to be chosen so that you don't access
out-of-bounds memory. `as_strided` doesn't check for this.

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to