On Mon, Jan 26, 2015 at 1:41 AM, Sebastian Berg <[email protected]>
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

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
> > [email protected]
> > http://mail.scipy.org/mailman/listinfo/numpy-discussion
>
>
> _______________________________________________
> NumPy-Discussion mailing list
> [email protected]
> 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
[email protected]
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to