The NumPy Fortran-ordering quiz

Charles R Harris charlesr.harris at gmail.com
Tue Oct 17 21:53:52 CDT 2006


On 10/17/06, Charles R Harris <charlesr.harris at gmail.com> wrote:
>
>
>
> On 10/17/06, Travis Oliphant <oliphant.travis at ieee.org> wrote:
> >
> > Charles R Harris wrote:
> > >
> > >
> > > On 10/17/06, *Lisandro Dalcin* <dalcinl at gmail.com
> > > <mailto:dalcinl at gmail.com>> wrote:
> > >
> > >     I was surprised by this
> > >
> > >     In [14]: array([[1,2,3],[4,5,6]]).reshape((3,2),order='F')
> > >     Out[14]:
> > >     array([[1, 5],
> > >            [4, 3],
> > >            [2, 6]])
> > >
> > >
> > > This one still looks wrong.
> > >
> > >     In [15]: array([1,2,3,4,5,6]).reshape((3,2),order='F')
> > >     Out[15]:
> > >     array([[1, 2],
> > >            [3, 4],
> > >            [5, 6]])
> > >
> > >
> > >
> > >  This one is fixed,
> > >
> > > In [3]: array([[1,2,3,4,5,6]]).reshape((3,2),order='F')
> > > Out[3]:
> > > array([[1, 4],
> > >        [2, 5],
> > >        [3, 6]])
> > >
> > > I also don't understand why a copy is returned if 'F' just fiddles
> > > with the indices and strides; the underlying data should be the same,
> > > just the view changes. FWIW, I think both examples should be returning
> >
> > > views.
> >
> > You are right, it doesn't need to.   My check is not general enough.
> >
> > It can be challenging to come up with a general way to differentiate the
> > view-vs-copy situation and I struggled with it.  In this case, it's the
> > fact that while self->nd > 1, the other dimensions are only of shape 1
> > and so don't really matter.   If you could come up with some kind of
> > striding check that would distinguish the two cases, I would appreciate
> > it.
>
>
> I suppose the problem is mostly in discontiguous arrays. Hmmm..., this
> isn't too different that reshaping the transpose.
>
> a.reshape((m,n),order='F' ~ a.reshape((n,m)).T.reshape(m,n)
>

Erm, brainfart. Make that a.reshape((m,n),order='F') ~ a.reshape((n,m)).T

That's how I think of it, anyway. Actual layout in memory is not affected
until something like ascontiguosarray is called.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.scipy.org/pipermail/numpy-discussion/attachments/20061017/c2c734f0/attachment.html 
-------------- next part --------------
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
-------------- next part --------------
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/numpy-discussion


More information about the Numpy-discussion mailing list