[Numpy-discussion] Float view of complex array
Jens Jørgen Mortensen
jensj at fysik.dtu.dk
Wed Jan 28 03:27:06 EST 2015
Den 27-01-2015 kl. 12:25 skrev Jaime Fernández del Río:
> On Mon, Jan 26, 2015 at 10:28 PM, Jens Jørgen Mortensen
> <jensj at fysik.dtu.dk <mailto:jensj at fysik.dtu.dk>> wrote:
>
> On 01/26/2015 11:02 AM, Jaime Fernández del Río wrote:
> > On Mon, Jan 26, 2015 at 1:41 AM, Sebastian Berg
> > <sebastian at sipsolutions.net <mailto:sebastian at sipsolutions.net>
> <mailto:sebastian at sipsolutions.net
> <mailto:sebastian at sipsolutions.net>>> wrote:
> >
> > On Mo, 2015-01-26 at 09:24 +0100, Jens Jørgen Mortensen wrote:
> > > Hi!
> > >
> > > I have a view of a 2-d complex array that I would like to view
> > as a 2-d
> > > float array. This works OK:
> > >
> > > >>> np.ones((2, 4), complex).view(float)
> > > array([[ 1., 0., 1., 0., 1., 0.,1., 0.],
> > > [ 1., 0., 1., 0., 1., 0., 1., 0.]])
> > >
> > > but this doesn't:
> > >
> > > >>> np.ones((2, 4), complex)[:, :2].view(float)
> > > Traceback (most recent call last):
> > > File "<stdin>", line 1, in <module>
> > > ValueError: new type not compatible with array.
> > > >>> np.__version__
> > > '1.9.0'
> > >
> > > and I don't understand why. When looking at the memory
> layout,
> > I think
> > > it should be possible.
> > >
> >
> > Yes, it should be possible, but it is not :). You could hack
> it by
> > using
> > `np.ndarray` (or stride tricks). Or maybe you are interested
> > making the
> > checks whether it makes sense or not less strict.
> >
> >
> > How would it be possible? He goes from an array with 16 byte strides
> > along the last axis:
> >
> > r0i0, r1i1, r2i2, r3i3
> >
> > to one with 32 byte strides, which is OK
> >
> > r0i0, xxxx, r2i2, xxxx
> >
> > but everything breaks down when he wants to have alternating strides
> > of 8 and 24 bytes:
> >
> > r0, i0, xxxx, r2, i2, xxxx
>
> No, that is not what I want. I want this:
>
> r0, i0, r1, i1, xxxx, xxxx
>
> with stride 8 on the last axis - which should be fine. My current
> workaround is to do a copy() before view() - thanks Maniteja.
>
>
> My bad, you are absolutely right, Jens...
>
> I have put together a quick PR
> (https://github.com/numpy/numpy/pull/5508) that fixes your use case,
> by relaxing the requirements for views of different dtypes. I'd
> appreciate if you could take a look at the logic in the code (it is
> profusely commented), and see if you can think of other cases that can
> be viewed as another dtype that I may have overlooked.
Thanks for looking into this. I'll take a look at the code, but it will
be a couple of days before I will find the time.
Jens Jørgen
>
> Thanks,
>
> Jaime
>
>
> Jens Jørgen
>
> >
> > which cannot be hacked in any sensible way.
> >
> > What I think could be made to work, but also fails, is this:
> >
> > np.ones((2, 4), complex).reshape(2, 4, 1)[:, :2, :].view(float)
> >
> > Here the original strides are (64, 16, xx) and the resulting view
> > should have strides (64, 32, 8), not sure what trips this.
> >
> > Jaime
> >
> >
> > - Sebastian
> >
> > > Jens Jørgen
> > >
> > > _______________________________________________
> > > NumPy-Discussion mailing list
> > > NumPy-Discussion at scipy.org
> <mailto:NumPy-Discussion at scipy.org>
> <mailto:NumPy-Discussion at scipy.org
> <mailto:NumPy-Discussion at scipy.org>>
> > >http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
> <mailto:NumPy-Discussion at scipy.org
> <mailto:NumPy-Discussion at scipy.org>>
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
> >
> >
> >
> >
> > --
> > (\__/)
> > ( O.o)
> > ( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus
> > planes de dominación mundial.
> >
> >
> > _______________________________________________
> > NumPy-Discussion mailing list
> > NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org <mailto:NumPy-Discussion at scipy.org>
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
>
>
> --
> (\__/)
> ( O.o)
> ( > <) Este es Conejo. Copia a Conejo en tu firma y ayúdale en sus
> planes de dominación mundial.
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20150128/b16dd109/attachment.html>
More information about the NumPy-Discussion
mailing list