Python で 2つの配列を比較する
-
Python で
numpy.array_equal()
メソッドを使用して 2つの配列を比較する -
Python で
numpy.allclose()
メソッドを使用して 2つの配列を比較する -
Python で
numpy.array_equiv()
メソッドを使用して 2つの配列を比較する -
Python で
==
演算子とnumpy.all()
メソッドを使用して 2つの配列を比較する
このチュートリアルでは、Python で 2つの配列を比較し、それらが等しいかどうかを確認するためのさまざまな方法を調べます。2つの配列は、それらの次元と値が同じである場合にのみ等しくなります。2つの配列の値が同じであるが、それらのシーケンスが同じでない場合、配列は等しいとは見なされません。
次の方法を使用して、Python で 2つの配列が等しいかどうかを確認できます。
Python で numpy.array_equal()
メソッドを使用して 2つの配列を比較する
numpy.array_equal(a1, a2, equal_nan=False)
は、入力として 2つの配列 a1
と a2
を取り、両方の配列が同じ形状と要素を持っている場合は True
を返し、そうでない場合はメソッドは False
を返します。equal_nan=
キーワード引数のデフォルト値は False
であり、メソッドで 2つの NaN
値を等しいと見なす場合は、True
に設定する必要があります。
以下のサンプルコードは、numpy.array_equal()
メソッドを使用して Python で 2つの配列を比較する方法を示しています。
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
print(np.array_equal(a1, a1))
print(np.array_equal(a1, a2))
出力:
True
False
Python で numpy.allclose()
メソッドを使用して 2つの配列を比較する
numpy.allclose(a1, a2, rtol=1e-05, atol=1e-08, equal_nan=False)
メソッドは、配列 a1
と a2
を入力として受け取り、の各要素が
Trueの場合は
True を返します。a1
が a2
の対応する要素と等しいか、それらの差が許容値内にあります。
許容値は、a2
、rtol
、および atol
引数を使用して計算されます。
atol + rtol * absolute(a2)
numpy.allclose()
メソッドは、最終的な配列が期待される配列と等しいかどうかを確認する計算に役立ちます。numpy.allclose()
メソッドを使用して、Python で 2つの配列を次のように比較できます。
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print(np.allclose(a1, a2))
print(np.allclose(a3, a2))
出力:
False
True
上記のサンプルコードに示されているように、2つの値の 0.00001
の差はデフォルトで無視されます。atol
と rtol
の値を変更して、許容値を増やすことができます。
Python で numpy.array_equiv()
メソッドを使用して 2つの配列を比較する
numpy.array_equiv(a1, a2)
メソッドは、配列 a1
と a2
を入力として受け取り、配列の形状と要素の両方が同じ場合は True
を返します。それ以外の場合は、False
を返します。
両方の配列を numpy.array_equiv()
メソッドに渡して、Python で比較できます。以下のサンプルコードは、numpy.array_equal()
メソッドを使用して、Python で 2つの配列が等しいかどうかを確認する方法を示しています。
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print(np.array_equiv(a1, a2))
print(np.array_equiv(a3, a2))
出力:
False
False
Python で ==
演算子と numpy.all()
メソッドを使用して 2つの配列を比較する
==
演算子を配列とともに使用すると、両方の配列と同等の形状の配列が返されます。返される配列には、両方の配列の要素がインデックスで等しい場合はインデックスに True
が含まれ、そうでない場合は配列がそのインデックスに False
が含まれています。
各要素の代わりに 2つの配列を比較したいので、==
演算子を使用して numpy.all()
メソッドを使用できます。numpy.all()
メソッドは、指定された軸に沿ったすべての入力配列要素が True
の場合、True
を返します。それ以外の場合は、False
を返します。
1
の場合に True
を返します。また、両方の配列の形状が同じでない場合もエラーが発生します。そのため、上記の方法を優先する必要があります。以下のサンプルコードは、==
演算子と numpy.all()
メソッドを使用して Python で 2つの配列を比較する方法を示しています。
import numpy as np
a1 = np.array([1, 2, 4, 6, 7])
a2 = np.array([1, 3, 4, 5, 7])
a3 = np.array([1, 3, 4.00001, 5, 7])
print((a1 == a2).all())
print((a3 == a2).all())
出力:
False
False