[Numpy-discussion] numpy.array(arr.flat) mutates arr if arr.flags.fortran: bug?
Zachary Pincus
zachary.pincus at yale.edu
Wed Mar 24 15:13:04 EDT 2010
Hello,
I assume it is a bug that calling numpy.array() on a flatiter of a
fortran-strided array that owns its own data causes that array to be
rearranged somehow?
Not sure what happens with a fancier-strided array that also owns its
own data (because I'm not sure how to create one of those in python).
This is from the latest svn version (2.0.0.dev8302) but was also
present in a previous version too.
Zach
In [9]: a = numpy.array([[1,2],[3,4]]).copy('F')
In [10]: a
Out[10]:
array([[1, 2],
[3, 4]])
In [11]: list(a.flat)
Out[11]: [1, 2, 3, 4]
In [12]: a # no problem
Out[12]:
array([[1, 2],
[3, 4]])
In [13]: numpy.array(a.flat)
Out[13]: array([1, 2, 3, 4])
In [14]: a # this ain't right!
Out[14]:
array([[1, 3],
[2, 4]])
In [15]: a = numpy.array([[1,2],[3,4]]).copy('C')
In [16]: numpy.array(a.flat)
Out[16]: array([1, 2, 3, 4])
In [17]: a
Out[17]:
array([[1, 2],
[3, 4]])
More information about the NumPy-Discussion
mailing list