[Numpy-discussion] array_equal too strict?
Sebastian Berg
sebastian at sipsolutions.net
Thu Dec 17 09:19:40 EST 2015
On Do, 2015-12-17 at 13:43 +0000, Nico Schlömer wrote:
> Hi everyone,
>
>
> I noticed a funny behavior in numpy's array_equal. The two arrays
> ```
> a1 = numpy.array(
> [3.14159265358979320],
> dtype=numpy.float64
> )
> a2 = numpy.array(
> [3.14159265358979329],
> dtype=numpy.float64
> )
> ```
> (differing the in the 18th overall digit) are reported equal by
> array_equal:
If you have some spare cycles, maybe you can open a pull request to add
np.isclose to the "See Also" section?
- Sebastian
> ```
> print(numpy.array_equal(a1, a2))
>
> # output: true
> ```
> That's expected because the difference is only in the 18th overall
> digit, and the mantissa length of float64 is 52 bits [1], i.e., approx
> 15.6 decimal digits. Moving the difference to the 17th overall digit
> should also be fine, however:
> ```
> a1 = numpy.array(
> [3.1415926535897930],
> dtype=numpy.float64
> )
> a2 = numpy.array(
> [3.1415926535897939],
> dtype=numpy.float64
> )
>
>
> print(numpy.array_equal(a1, a2))
> # output: false
> ```
> It gets even more visible with float32 and its 23 mantissa bits (i.e.,
> 6.9 decimal digits):
> ```
> a1 = numpy.array(
> [3.14159260],
> dtype=numpy.float32
> )
> a2 = numpy.array(
> [3.14159269],
> dtype=numpy.float32
> )
>
>
> print(numpy.array_equal(a1, a2))
> # output: false
> ```
> The difference is only in the 9th decimal digit, still `array_equal_
> detects the difference.
>
>
> I'm not sure where I'm going wrong here. Any hints?
>
>
> Cheers,
> Nico
>
>
>
>
> [1] https://docs.scipy.org/doc/numpy-1.10.1/user/basics.types.html
> _______________________________________________
> NumPy-Discussion mailing list
> NumPy-Discussion at scipy.org
> https://mail.scipy.org/mailman/listinfo/numpy-discussion
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20151217/5139b729/attachment.sig>
More information about the NumPy-Discussion
mailing list