[Numpy-discussion] Behavior of array scalars

Travis Oliphant oliphant at ee.byu.edu
Fri Feb 17 16:05:01 EST 2006


Sasha wrote:

>It is actually being translated to "a = add(a,10,a)" by virtue of
>array_inplace_add supplied in the inplace_add slot.  Here is the
>proof:
>  
>

I think we do need to fix something.  Because the problem is even more 
apparent when you in-place add
an array to a matrix.

Consider...

a = rand(5,5)
b = mat(a)

a += b

What do you think the type of a now is?  What should it be?

Currently,  this code would change a from an array to a matrix because

add(a,b,a) returns a matrix.

I'm thinking that we should establish the rule that if output arrays are 
given, then what is returned should just be those output arrays...

This seems to make consistent sense and it will make the inplace 
operators work as expected (not changing the type).  We are currently 
not letting in-place operators change the data-type.  Our argument 
against that behavior is weakened if we do let them change the Python 
type....

-Travis





More information about the NumPy-Discussion mailing list