[Numpy-discussion] Regression: in-place operations (possibly intentional)

Chris Barker chris.barker@noaa....
Fri Sep 21 16:04:33 CDT 2012


On Fri, Sep 21, 2012 at 10:03 AM, Nathaniel Smith <njs@pobox.com> wrote:

> You're right of course. What I meant is that
>   a += b
> should produce the same result as
>   a[...] = a + b
>
> If we change the casting rule for the first one but not the second, though,
> then these will produce different results if a is integer and b is float:

I certainly agree that we would want that, however, numpy still needs
to deal tih pyton symantics, which means that wile (at the numpy
level) we can control what "a[...] =" means, and we can control what
"a + b" produces, we can't change what "a + b" means depending on the
context of the left hand side.

that means we need to do the casting at the assignment stage, which I
gues is your point -- so:

a_int += a_float

should do the addition with the "regular" casting rules, then cast to
an int after doing that.

not sure the implimentation details.

Oh, and:

a += b

should be the same as

a[..] = a + b

should be the same as

np.add(a, b, out=a)

not sure what the story is with that at this point.

-Chris




-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@noaa.gov


More information about the NumPy-Discussion mailing list