2 つの numpy 配列を比較する方法: 例付き
次のメソッドを使用して、2 つの NumPy 配列の値を比較できます。
方法 1: 2 つの NumPy 配列が要素レベルで等しいかどうかをテストする
#test if array A and array B are element-wise equal n.p. array_equal (A,B)
方法 2: 2 つの NumPy 配列が要素レベルで (許容範囲内で) 等しいかどうかをテストします。
#test if array A and array B are element-wise equal (within absolute tolerance of 2) n.p. allclose (A, B, atol= 2 )
次の例は、各メソッドを実際に使用する方法を示しています。
例 1: 2 つの NumPy 配列が要素レベルで等しいかどうかをテストする
次のコードは、 array_equal()関数を使用して 2 つの NumPy 配列が要素レベルで等しいかどうかをテストする方法を示しています。
import numpy as np #create two NumPy arrays A = np. array ([1, 4, 5, 7, 10]) B = np. array ([1, 4, 5, 7, 10]) #test if arrays are element-wise equal n.p. array_equal (A,B) True
両方の NumPy 配列が同じ長さで、同じ位置に同じ値があるため、この関数はTrueを返します。
ただし、2 つの NumPy 配列の値が同じで位置が異なる場合、関数はFalseを返します。
import numpy as np #create two NumPy arrays with same values but in different positions A = np. array ([1, 4, 5, 7, 10]) B = np. array ([1, 4, 7, 5, 10]) #test if arrays are element-wise equal n.p. array_equal (A,B) False
例 2: 2 つの NumPy 配列が要素レベルで (許容範囲内で) 等しいかどうかをテストする
次のコードは、 allclose()関数を使用して、2 つの NumPy 配列が要素レベルで許容値2の範囲内で等しいかどうかをテストする方法を示しています。
import numpy as np #create two NumPy arrays A = np. array ([1, 4, 5, 7, 10]) B = np. array ([1, 4, 7, 8, 10]) #test if arrays are element-wise equal (within absolute tolerance of 2) n.p. allclose (A, B, atol= 2 ) True
各 NumPy 配列間で一致する要素はすべて互いに 2 以内にあるため、この関数はTrueを返します。
たとえば、各配列の 3 番目と 4 番目の位置の要素が異なることがわかりますが、各ペアの値が 2 つ離れているため、関数は true を返します。
ただし、絶対許容誤差 (atol) 引数を1に変更すると、関数はFalseを返します。
import numpy as np #create two NumPy arrays A = np. array ([1, 4, 5, 7, 10]) B = np. array ([1, 4, 7, 8, 10]) #test if arrays are element-wise equal (within absolute tolerance of 1) n.p. allclose (A, B, atol= 1 ) False
各 NumPy 配列の 3 番目の位置にある対応する要素が互いに 1 秒離れていないため、この関数はFalseを返します。
注: array_equal関数とallclose関数の詳細な説明については、NumPy のドキュメントを参照してください。
追加リソース
次のチュートリアルでは、NumPy で他の一般的なタスクを実行する方法について説明します。