Hi, On Mon, Mar 7, 2011 at 5:01 PM, Neal Becker <ndbeck...@gmail.com> 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] > In case actually v[i]= u[i* l: (i+ 1)* l+ k], then this may be useful from numpy.lib.stride_tricks import as_strided as ast def os(a, l, k= 0): shape, strides= (a.shape[0]- l+ 1, l+ k), a.strides* 2 return ast(a, shape= shape, strides= strides) if __name__ == '__main__': import numpy as np a= np.arange(7, dtype= np.int8) print os(a, 3) # [[0 1 2] # [1 2 3] # [2 3 4] # [3 4 5] # [4 5 6]] print os(a, 3, 2) # [[ 0 1 2 3 4] # [ 1 2 3 4 5] # [ 2 3 4 5 6] # [ 3 4 5 6 0] # last item garbage # [ 4 5 6 0 34]] # 2 last items garbage My two cents, eat > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > http://mail.scipy.org/mailman/listinfo/numpy-discussion >
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion