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
<je...@fysik.dtu.dk <mailto:je...@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
> <sebast...@sipsolutions.net <mailto:sebast...@sipsolutions.net>
<mailto:sebast...@sipsolutions.net
<mailto:sebast...@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@scipy.org
<mailto:NumPy-Discussion@scipy.org>
<mailto:NumPy-Discussion@scipy.org
<mailto:NumPy-Discussion@scipy.org>>
> >http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion@scipy.org <mailto:NumPy-Discussion@scipy.org>
<mailto:NumPy-Discussion@scipy.org
<mailto:NumPy-Discussion@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@scipy.org <mailto:NumPy-Discussion@scipy.org>
> http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org <mailto:NumPy-Discussion@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@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion