[Numpy-discussion] Best way to construct/slice 3-dimensional ndarray from multiple 2d ndarrays?
Wed Aug 17 12:00:19 CDT 2011
Right now you allocate new memory only when creating your 3d array. When you
do "x = cube" this creates a view that does not allocate more memory.
If your 2d arrays were created independently, I don't think you can avoid
If you have some control on the way your original 2D arrays are created, you
can first initialize the 3d array with correct shape (or an upper bound on
the number of 2d arrays), then use views on this 3d array ("x_i = cube[i]")
to fill your 2D arrays in the same memory space.
I can't help with your second question, sorry.
2011/8/17 Keith Hughitt <email@example.com>
> Hi all,
> I have a method which builds a single 3d ndarray from several
> equal-dimension 2d ndarrays, and another method which extracts the original
> 2d ndarrays back out from the 3d one.
> The way I'm doing this right now is pretty simple, e.g.:
> cube = np.asarray([arr1, arr2,...])
> x = cube
> I believe the way this is currently handled, is to use new memory locations
> first for the 3d array, and then later for the 2d slices.
> Does anyone know if there is a better way to handle this? Ideally, I would
> like to reuse the same memory locations instead of copying it anew each
> Also, when subclassing ndarray and calling obj = data.view(cls) for an
> ndarray "data", does this copy the data into the new object by value or
> reference? The method which extracts the 2d slice actually returns a
> subclass of ndarray created using the extracted data, so this is why I ask.
> Any insight or suggestions would be appreciated.
> NumPy-Discussion mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion