[SciPy-user] How to "move" data within an array
Wed Jul 4 04:33:29 CDT 2007
why not using a list of 1D arrays?
but why do you want to physically move your rows? you can simply use an
integer as a pointer to the row of the "current time": then you update this
integer every timestep (+1), taking its "modulo 5" to cycle through
my two cents.
On 7/4/07, Andrew Smart <email@example.com> wrote:
> Hi folks,
> I'm using numpy arrays for storing data which is generated within an
> I'm using the topmost dimension as time axis: every row represents a full
> set of data created by the engine while one round.
> Say: i have an array for storing prices (e.g. 10 different prices are
> generated within one engine round). I'm storing/using the last 5 rounds,
> I get an array with the dimensions (5,10).
> If the engine runs longer than 5 rounds I have to "remove" the oldest
> and move the younger records one position back.
> Since I've a lot of such arrays I would like to use the most efficient
> method avaiable in numpy. On a pure memory-orientated view this would be
> just to copy ("move") the memory blocks from the younger 4 rows one row
> further, thus having the first row for the new data.
> In the C API I see some functions like copyswap() and memmove() which
> indicate that such operations are possible at the C API level. But I'm not
> sure the correct approach on the Python level.
> Taking slices may be one options - but the new slice will then occupy new
> memory, causing memory fragmentation...
> Looping over all data items, all rows is time consuming and surely wasting
> Any pointers/ideas?
> SciPy-user mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the SciPy-user