[Numpy-discussion] Bitwise operations and unsigned types
Fri Apr 6 04:57:44 CDT 2012
On Fri, Apr 6, 2012 at 7:19 AM, Travis Oliphant <email@example.com> wrote:
> That is an interesting point of view. I could see that point of view.
> But, was this discussed as a bug prior to this change occurring?
> I just heard from a very heavy user of NumPy that they are nervous about
> upgrading because of little changes like this one. I don't know if this
> particular issue would affect them or not, but I will re-iterate my view
> that we should be very careful of these kinds of changes.
I agree -- these changes make me very nervous as well, especially
since I haven't seen any short, simple description of what changed or
what the rules actually are now (comparable to the old "scalars do not
affect the type of arrays").
But, I also want to speak up in favor in one respect, since real world
data points are always good. I had some code that did
a = np.asarray(a)
a -= np.mean(a)
If someone happens to pass in an integer array, then this is totally
broken -- np.mean(a) may be non-integral, and in 1.6, numpy silently
discards the fractional part and performs the subtraction anyway,
In : a
Out: array([0, 1, 2, 3])
In : a -= 1.5
In : a
Out: array([-1, 0, 0, 1])
The bug was discovered when Skipper tried running my code against
numpy master, and it errored out on the -=. So Mark's changes did
catch one real bug that would have silently caused completely wrong
More information about the NumPy-Discussion