Hi Marc On Wed, Jul 31, 2013 at 9:39 AM, Marc de Klerk <deklerkmc@gmail.com> wrote:
I've been using np.ravel(). This morning I tried to lookup the difference between np.ravel() and np.ascontiguousarray(). Does anybody know?
np.ravel docstring: A 1-D array, containing the elements of the input, is returned. A copy is made only if needed. np.ascontiguousarray: Return a contiguous array in memory (C order). In [13]: x = np.array(([1, 2], [3, 4])) In [14]: np.ravel(x) Out[14]: array([1, 2, 3, 4]) In [15]: np.ascontiguousarray(x) Out[15]: array([[1, 2], [3, 4]]) Since the default "order" parameter for ravel is "C", and 1-D arrays with order "C" can only be contiguous, you happen to get contiguous memory layout. However, if you want to preserve shape, you cannot use ravel. Stéfan