二つの配列が「だいたい同じ(近似値)」かどうか判定したいと時があると思います。
そんな時に使えるのが、numpy.allclose
です。
早速サンプルコードを見てみます。
サンプルコード
まずは、近似値となる場合
import numpy as np
a = [1.0, 1.0]
b = [1.0000001, 1.000001]
print(np.allclose(a,b))
# => True
次に、近似値とならない場合
a = [1.0, 1.0]
b = [1.0000001, 1.1]
print(np.allclose(a,b))
# => False
ちなみに、どこまで近似値とするかは
ドキュメントにある通り二つのarrayの差の絶対値が、以下のような範囲に収まる時に近似値としています。
atol = 1e-08
rtol = 1e-05p
absolute(a - b) <= (atol + rtol * absolute(b))
atol, rtol
もnp.allclose
の引数で設定できるので、もし近似値の範囲を決めたい場合は引数で設定してください。
コメント