2つのarrayが近似的に同じか比べる
2つのNdarrayが近い値かどうかを比べるには、numpy.allcloseを使う。
- numpy.allclose(a, b, rtol=1e-05, atol=1e-08)
2つのarray a,bを受け取って(a,bは同じshapeのarrayでないといけない)、すべての成分が
absolute(a - b) ≦ (atol + rtol * absolute(b))
を満たせばTrueを、満たさない成分があればFalseを返す。
成分ごとに、比較したい場合はnumpy.iscloseを使う。
また、近い値かどうかではなく、exactに一致しているかどうかを調べたい時には、numpy.array_equalもしくはnumpy.array_equivを使う(numpy.array_equalはshapeが一致している時のみTrueで、numpy.array_equivはbroadcastedして一致するならTrue)。
Ref:
http://ibisforest.org/index.php?python%2Fnumpy#q0f5fdb7
http://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html
http://docs.scipy.org/doc/numpy/reference/generated/numpy.isclose.html
http://docs.scipy.org/doc/numpy/reference/generated/numpy.array_equal.html
http://docs.scipy.org/doc/numpy/reference/generated/numpy.array_equiv.html
例)
import numpy as np A = np.array([1.0, 1.0]) B = np.array([1.0000001, 1.0]) print np.allclose(A,B) print np.isclose(A,B) print np.array_equal(A,B)
True
[ True True]
False