On 06/05/2013 11:39, Daniele Nicolodi wrote:
On 06/05/2013 11:01, Robert Kern wrote:
np.roll() copies all of the data every time. It does not return a view.
Are you sure about that? Either I'm missing something, or it returns a view in my testing (with a fairly old numpy, though):
Ops... Yes, I missed something: np.roll() returns a view, but not a view on the original array, which is indeed copied. Your method however also copies the data in a temporary buffer for operating on it as a single chunk of data. It just reduces the copy to the interesting region of the buffer array. It looks like there is no way to use numpy to operate on a ring buffer without copying the data, and in my use case I would like to avoid the copying. I'll write it in Cython... Cheers, Daniele