On Fri, Apr 6, 2012 at 3:57 AM, Nathaniel Smith <n...@pobox.com> wrote:
> On Fri, Apr 6, 2012 at 7:19 AM, Travis Oliphant <tra...@continuum.io> > 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 > def do_something(a): > 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, > e.g.: > > In [4]: a > Out[4]: array([0, 1, 2, 3]) > > In [5]: a -= 1.5 > > In [6]: a > Out[6]: 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 > numerical results! > > > https://github.com/charlton/charlton/commit/d58c72529a5b33d06b49544bc3347c6480dc4512 > > Yes, these things are trade offs between correctness and convenience. I don't mind new warnings/errors so much, they may break old code but they don't lead to wrong results. It's the unexpected and unnoticed successes that are scary. Chuck
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion