Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #109626
| From | Michael Selik <michael.selik@gmail.com> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: reshape and keep x,y,z ordering |
| Date | 2016-06-07 13:16 +0000 |
| Message-ID | <mailman.59.1465305415.2306.python-list@python.org> (permalink) |
| References | <5ef3691e-2317-41df-ad60-3d2450841413@googlegroups.com> <CAGgTfkMSF4Zq7BuCR4+wFXp-D4nJbJXL-YScsuW=pDmGWPiNgQ@mail.gmail.com> |
On Tue, Jun 7, 2016 at 7:31 AM Heli <hemla21@gmail.com> wrote:
> Hello,
> I have a question regarding reshaping numpy array.
>
> I either have a 1D array that I need to reshape to a 3D array or a 3D
> array to reshape to a 1d numpy array.
>
> In both of these cases it is assumed that data follows x,y,z ordering.
> and I use the following to reshape the numpy array.
>
> new_1d_array=np.reshape(3d.transpose(),(3d_nx*3d_ny*3d_nz,))
>
> new_3d_array=np.reshape(1d,((3d_x,3d_y,3d_z)).transpose())
>
> My question is if there is anyway that reshape would keep x,y,z ordering
> that would not require transpose? and if there is a better more efficient
> way to do this?
>>> a = np.arange(9).reshape(3,3)
>>> a
array([[0, 1, 2],
[3, 4, 5],
[6, 7, 8]])
>>> a.flatten()
array([0, 1, 2, 3, 4, 5, 6, 7, 8])
>>> a.flatten('F')
array([0, 3, 6, 1, 4, 7, 2, 5, 8])
Does this work for you?
The flatten method normally goes row by row, but you can specify FORTRAN
style column by column flattening.
Back to comp.lang.python | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
reshape and keep x,y,z ordering Heli <hemla21@gmail.com> - 2016-06-07 04:25 -0700
Re: reshape and keep x,y,z ordering Joel Goldstick <joel.goldstick@gmail.com> - 2016-06-07 08:48 -0400
Re: reshape and keep x,y,z ordering Michael Selik <michael.selik@gmail.com> - 2016-06-07 13:16 +0000
Re: reshape and keep x,y,z ordering Heli <hemla21@gmail.com> - 2016-06-07 06:37 -0700
csiph-web