On Tue, Feb 18, 2014 at 9:03 AM, Charles R Harris <charlesr.har...@gmail.com > wrote:
> > > > On Tue, Feb 18, 2014 at 9:40 AM, Nathaniel Smith <n...@pobox.com> wrote: > >> On 18 Feb 2014 11:05, "Charles R Harris" <charlesr.har...@gmail.com> >> wrote: >> > >> > Hi All, >> > >> > There is an old ticket, #1499, that suggest adding a segment_axis >> function. >> > >> > def segment_axis(a, length, overlap=0, axis=None, end='cut', >> endvalue=0): >> > """Generate a new array that chops the given array along the given >> axis >> > into overlapping frames. >> > >> > Parameters >> > ---------- >> > a : array-like >> > The array to segment >> > length : int >> > The length of each frame >> > overlap : int, optional >> > The number of array elements by which the frames should overlap >> > axis : int, optional >> > The axis to operate on; if None, act on the flattened array >> > end : {'cut', 'wrap', 'end'}, optional >> > What to do with the last frame, if the array is not evenly >> > divisible into pieces. >> > >> > - 'cut' Simply discard the extra values >> > - 'wrap' Copy values from the beginning of the array >> > - 'pad' Pad with a constant value >> > >> > endvalue : object >> > The value to use for end='pad' >> > >> > >> > Examples >> > -------- >> > >>> segment_axis(arange(10), 4, 2) >> > array([[0, 1, 2, 3], >> > [2, 3, 4, 5], >> > [4, 5, 6, 7], >> > [6, 7, 8, 9]]) >> > >> > >> > Is there and interest in having this function available? >> >> I'd use it, though haven't looked at the details of this api per set yet. >> >> rolling_window or shingle are better names. >> >> It should probably be documented and implemented to return a view when >> possible (using stride tricks). Along with a note that whether this is >> possible depends heavily on 32- vs. 64-bitness. >> > > I believe it does return views when possible. There are two patches > attached to the issue, one for the function and another for tests. So here > is an easy commit for someone ;) The original author seems to be Anne > Archibald, who should be mentioned if this is put in. > > Where does 'shingle' come from. I can see the analogy but haven't seen > that as a technical term. > In an inkjet printing pipeline, one of the last steps is to split the image into the several passes that will be needed to physically print it. This is often done with a tiled, non-overlapping mask, known as a "shingling mask."
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion