
Uh oh, Just updated to new numpy so that dot() wouldn't be broken. What fun to play with the new order/ravel/reshape stuff. Unfortunately, the ravel/reshape methods seem to not be quite worked out properly yet. Basically (and as expected) the ravel method doesn't work anymore on fortran-strided arrays. But since fortran- strided arrays happen *all-the-time* (e.g. after a transpose operation), things get confusing fast. In fact, absolutely no reshape operation (other than the identity reshape) will work on fortran-strided arrays (see below). Also, the errors could be more helpful, and anyway ravel shouldn't fail with an error about reshape fortran-strided. This can't be the optimal situation, since it makes the method interface next-to-useless (because exceptions might be thrown at any moment) unless a *lot* of care is taken to properly sanitize the arrays that are used (in which case any speed gains are probably lost). In [1]: import numpy In [2]: numpy.__version__ Out[2]: '0.9.7.2291' In [3]: a = numpy.array([[1,2],[3,4],[5,6]]) In [4]: b = a.transpose() In [5]: a.ravel() Out[5]: array([1, 2, 3, 4, 5, 6]) In [6]: b.ravel() ValueError: cannot return a view from reshape. In [7]: b.shape Out[7]: (2, 3) In [8]: b.reshape((1,6)) ValueError: cannot return a view from reshape. In [9]: b.reshape((6,1)) ValueError: cannot return a view from reshape. In [10]: b.reshape((3,2)) ValueError: cannot return a view from reshape. This state of affairs seems pretty hostile to both advanced users and basic ones. Now I need to go through all of my code and eliminate the use of array methods, since about half of the time I'll be calling things like ravel on arrays that have been transposed. What a waste -- is there something better I can do or something better numpy can do? At the very least, a strong convention really needs to be established and made clear about what the methods do (never return copies) and what the functions do (sometimes return copies? hardly a strong convention), and when to choose one or the other. Zach