Jens Jørgen Mortensen wrote: > I would like all these arrays to be contiguous: > >>>> import numpy as npy >>>> npy.__version__ > '1.0.4.dev3967' >>>> x = npy.arange(4) >>>> y = x[npy.newaxis, :] >>>> z = x.reshape((1, 4)) >>>> for a in [x, y, z]: > ... print a.shape, a.strides, a.flags.contiguous > ... > (4,) (4,) True > (1, 4) (0, 4) False > (1, 4) (16, 4) True > > But y is not contiguous according to y.flags.contiguous - why not and > why does y and z not have the same strides? > > I f
We've tried a few times to let them be contiguous, but it breaks code in various ways because NumPy takes advantage of 0-striding to accomplish broadcasting. In theory, it might be able to be fixed, but the fact that simple fixes don't work makes me wonder. ound this comment just before the _IsContiguous function in > arrayobject.c: > > /* 0-strided arrays are not contiguous (even if dimension == 1) */ > > Is this correct? Yes. -Travis _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
