[Numpy-discussion] arr.copy(order='F') doesn't agree with docstring: what is intended behavior?

Kurt Smith kwmsmith@gmail....
Sat Jun 26 19:24:56 CDT 2010


I'd really like arr.copy(order='F') to work -- is it supposed to as
its docstring says, or is it supposed to raise a TypeError as it does
now?

This is on numpy 1.4

>>> import numpy as np
>>> a = np.arange(10).reshape(5,2)
>>> a
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])
>>> print a.copy.__doc__
a.copy(order='C')

    Return a copy of the array.

    Parameters
    ----------
    order : {'C', 'F', 'A'}, optional
        By default, the result is stored in C-contiguous (row-major) order in
        memory.  If `order` is `F`, the result has 'Fortran' (column-major)
        order.  If order is 'A' ('Any'), then the result has the same order
        as the input.

    Examples
    --------
    >>> x = np.array([[1,2,3],[4,5,6]], order='F')

    >>> y = x.copy()

    >>> x.fill(0)

    >>> x
    array([[0, 0, 0],
           [0, 0, 0]])

    >>> y
    array([[1, 2, 3],
           [4, 5, 6]])

    >>> y.flags['C_CONTIGUOUS']
    True
>>> a.copy(order='C')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: copy() takes no keyword arguments
>>> a.copy(order='F')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: copy() takes no keyword arguments
>>>


More information about the NumPy-Discussion mailing list