[Numpy-discussion] weird problem with subtracting ndarrays
warren.weckesser at gmail.com
Wed Jun 12 15:30:22 EDT 2013
On Wed, Jun 12, 2013 at 3:25 PM, Moroney, Catherine M (398D) <
Catherine.M.Moroney at jpl.nasa.gov> wrote:
> I've got two arrays of the same shape that I read in from a file, and I'm
> trying to
> difference them. Very simple stuff, but I'm getting weird answers.
> Here is the code:
> >>> counts1 = hfile1.read_grid_field("CFbA",
> >>> counts2 = hfile2.read_grid_field("CFbA",
> >>> counts1.max(), counts2.max()
> (13, 13)
> >>> counts1.min(), counts2.min()
> (0, 0)
> >>> numpy.all(counts1 == counts2)
> >>> diff = counts1 - counts2
> >>> diff.max()
> 4294967295 !! WHAT IS HAPPENING HERE ??
> >>> sum = counts1 + counts2
> >>> sum.max()
> As you can see, the range of values in both arrays is 0 to 13, and the sum
> behaves normally, but the difference gives this weird number.
> When I create dummy arrays, the subtraction works fine. So there must be
> some funny value
> lurking in either the counts1 or counts2 array, but the numpy.isnan() test
> returns False.
> Any ideas for how I debug this?
Check the dtype of the arrays. They are probably unsigned integers, and
the subtraction leads to wrap-around in some cases.
In : x = np.array([0, 1, 2], dtype=np.uint32)
In : y = np.array([1, 1, 1], dtype=np.uint32)
In : x - y
Out: array([4294967295, 0, 1], dtype=uint32)
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion