[Numpy-discussion] __iadd__(ndarray<int>, ndarray<float>)
Tue Mar 25 07:57:58 CDT 2008
On Dienstag 25 März 2008, Nadav Horesh wrote:
> scalars are immutable objects in python. Thus the += (and alike) are "fake":
Again, thanks for the explanation. IMHO, whether or not they are fake is an
implementation detail. You shouldn't have to know Python's guts to be able to
use Numpy successfully. Even if they weren't fake, implementing my suggested
semantics in Numpy wouldn't be particularly hard.
> a += 3 is really equivalent to a = a+3.
Except when it isn't.
> numpy convention is consistent
> with the python's spirit.
A matter of taste.
> I really use that fact to write arr1 +=
> something, in order to be sure that the type of arr1 is conserved, and
> write arr1 = arr1+something, to allow upward type casting.
I'm not trying to make the operation itself go away. I'm trying to make the
syntax beginner-safe. Complete loss of precision without warning is not a
meaning that I, as a toolkit designer, would assign to an innocent-looking
inplace operation. My hunch is that many people who start with Numpy will
spend an hour of their lives hunting a spurious bug caused by this. I have.
Think of the time we can save humanity. :)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://projects.scipy.org/pipermail/numpy-discussion/attachments/20080325/e377acb4/attachment.bin
More information about the Numpy-discussion