The NumPy Fortran-ordering quiz

Travis Oliphant oliphant.travis at ieee.org
Tue Oct 17 20:59:41 CDT 2006


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.

-Travis


-------------------------------------------------------------------------
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




More information about the Numpy-discussion mailing list