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

Kurt Smith kwmsmith@gmail....
Sun Jun 27 13:41:23 CDT 2010


On Sun, Jun 27, 2010 at 1:03 PM, David Goldsmith
<d.l.goldsmith@gmail.com> wrote:
> On Sun, Jun 27, 2010 at 10:38 AM, Kurt Smith <kwmsmith@gmail.com> wrote:
>>
>> On Sat, Jun 26, 2010 at 7:34 PM, Warren Weckesser
>> <warren.weckesser@enthought.com> wrote:
>> > Kurt Smith wrote:
>> >> 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?
>> >>
>> >
>> > It works for me if I don't use the keyword.  That is,
>> >
>> >  >>> b = a.copy('F')
>>
>> Great!  At least the functionality is there.
>>
>> >
>> > But I get the same error if I use order='F', so there is a either a bug
>> > in the docstring or a bug in the code.
>>
>> I certainly hope it's a docstring bug and not otherwise.
>>
>> Any pointers on submitting documentation bugs?
>>
>> Kurt
>
> Same as filing a code bug: file a ticket at projects.scipy.org/numpy,  But
> the policy is to document desired behavior, not actual behavior (if the code
> isn't behaving as advertised but it should, obviously that's a code bug), so
> you can do one of two things: a) wait 'til someone replies here clarifying
> which it is, or b) file a ticket which describes the inconsistency and let
> the issue be worked out over there (preferred IMO 'cause it gets the ticket
> filed while the issue is fresh in your mind, and any discussion of what kind
> of bug it is gets recorded as part of the ticket history).  Thanks for
> reporting/filing!

I misspoke (mistyped...).  So long as it has the 'F' behavior I'm
happy, and I'll gladly file a bug report & patch to get the code to
match the docs, assuming that's the intended behavior.

Who do I contact about getting a trac account?

Thanks,

Kurt

>
> DG
>
>>
>> >
>> > Warren
>> >
>> >
>> >> 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