NumPy 配列が等しい

Muhammad Maisam Abbas 2023年1月30日
  1. Python の == 演算子を使用した NumPy 配列の等価性チェック
  2. numpy.array_equal() 関数を使用した NumPy 配列の等価性チェック
  3. Python の numpy.array_equiv() 関数を使用した NumPy 配列の等価性チェック
  4. Python の numpy.allcloses() 関数と等しい NumPy
NumPy 配列が等しい

この記事では、Python の NumPy 配列で要素ごとの等式比較を実行する方法を紹介します。

Python の == 演算子を使用した NumPy 配列の等価性チェック

== 等式比較演算子は、2つの量が等しいかどうかを確認するために使用されます。== 演算子は、数量が等しい場合は True を返し、数量が等しくない場合は False を返します。== 演算子を all() 関数と一緒に使用して、2つの配列のすべての要素が等しいかどうかを確認できます。次のコード例は、Python の == 演算子を使用して、2つの配列が等しいかどうかを要素ごとに比較する方法を示しています。

import numpy as np

array1 = np.array([1, 2, 3, 4, 5])

array2 = np.array([1, 2, 3, 4, 5])
print((array1 == array2).all())

出力:

True

上記のコードでは、配列 array1array2== 演算子と all() 関数と等しいかどうかを要素ごとに比較しました。最初に、np.array() 関数を使用して配列 array1array2 を作成しました。次に、== 演算子を all() 関数とともに使用して、array1 内のすべての値が array2 内の値と等しいかどうかを確認しました。このアプローチは非常に効率的で理解しやすいですが、このアプローチを使用することにはいくつかの欠点があります。たとえば、いずれかの配列が空で、2 番目の配列に要素が 1つしかない場合、このアプローチは True 値を返します。もう 1つの問題は、両方の配列の形状が異なる場合、このアプローチではエラーが発生することです。

numpy.array_equal() 関数を使用した NumPy 配列の等価性チェック

前のアプローチと同じ目的を達成するためのより徹底的でエラーのない方法は、numpy.array_equal() 関数を使用することです。numpy.array_equal() 関数は、2つの配列が等しいかどうかを比較します。numpy.array_equal() 関数は、配列が等しい場合は True を返し、配列が等しくない場合は False を返します。次のコード例は、numpy.array_equal() 関数を使用して、2つの配列が等しいかどうかを要素ごとに比較する方法を示しています。

import numpy as np

array1 = np.array([1, 2, 3, 4, 5])

array2 = np.array([1, 2, 3, 4, 5])
print(np.array_equal(array1, array2))

出力:

True

上記のコードでは、np.array_equal() 関数を使用して、array1 内のすべての値が array2 内の値と等しいかどうかを確認しました。

Python の numpy.array_equiv() 関数を使用した NumPy 配列の等価性チェック

numpy.array_equiv() 関数を使用して、Python で 2つの配列が等しいかどうかを確認することもできます。numpy.array_equiv() 関数は、両方の配列が同じ形状ですべての要素が等しい場合は True を返し、それ以外の場合は False を返します。

import numpy as np

array1 = np.array([1, 2, 3, 4, 5])

array2 = np.array([0, 2, 3, 4, 5])
print(np.array_equiv(array1, array2))

出力:

False

上記のコードでは、np.array_equiv() 関数を使用して、array1array2 と等しいかどうかを確認しました。

Python の numpy.allcloses() 関数と等しい NumPy

numpy.allclose() 関数を使用して、Python で 2つの配列が要素ごとに等しいかどうかを確認することもできます。numpy.allclose() 関数は、両方の配列内のすべての要素が指定された許容範囲内で等しい場合、True を返します。

import numpy as np

array1 = np.array([1, 2, 3, 4, 5])

array2 = np.array([1, 2, 3, 4, 5])
print(np.allclose(array1, array2))

出力:

False

上記のコードでは、np.allclose() 関数を使用して、array1array2 と等しいかどうかを確認しました。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn