Python에서 두 배열 비교
- 
          
            numpy.array_equal()메소드를 사용하여 Python에서 두 배열 비교
- 
          
            numpy.allclose()메서드를 사용하여 Python에서 두 배열 비교
- 
          
            numpy.array_equiv()메소드를 사용하여 Python에서 두 배열 비교
- 
          
            ==연산자 및numpy.all()메서드를 사용하여 Python에서 두 배열 비교
 
이 튜토리얼에서는 Python에서 두 배열을 비교하고 동일한 지 여부를 확인하는 다양한 방법을 살펴 봅니다. 두 배열은 차원과 값이 동일한 경우에만 동일합니다. 두 배열의 값이 같지만 순서가 같지 않으면 배열이 동일한 것으로 간주되지 않습니다.
다음 방법을 사용하여 두 배열이 Python에서 동일한 지 여부를 확인할 수 있습니다.
numpy.array_equal()메소드를 사용하여 Python에서 두 배열 비교
numpy.array_equal(a1, a2, equal_nan=False)는 두 개의 배열a1및a2를 입력으로 취하고 두 배열의 모양과 요소가 동일한 경우True를 리턴하고 그렇지 않으면 메소드가False를 리턴합니다. equal_nan=키워드 인수의 기본값은False이며 메소드가 두 개의NaN값을 동일하게 간주하도록하려면True로 설정해야합니다.
아래 예제 코드는numpy.array_equal()메소드를 사용하여 Python에서 두 배열을 비교하는 방법을 보여줍니다.
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
numpy.allclose()메서드를 사용하여 Python에서 두 배열 비교
numpy.allclose(a1, a2, rtol=1e-05, atol=1e-08, equal_nan=False)메서드는 배열a1및a2를 입력으로 취하고의 각 요소가True를 반환합니다. a1은a2의 해당 요소와 같거나 그 차이가 공차 값 내에 있습니다.
허용 오차 값은a2,rtol및atol인수를 사용하여 계산됩니다.
atol + rtol * absolute(a2)
numpy.allclose()메소드는 최종 배열이 예상 배열과 같은지 여부를 확인하려는 계산에 유용합니다. numpy.allclose()메소드를 사용하여 다음과 같은 방식으로 Python에서 두 배열을 비교할 수 있습니다.
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
위의 예제 코드에서 볼 수 있듯이 두 값 사이의0.00001차이는 기본적으로 무시됩니다. atol및rtol의 값을 변경하여 공차 값을 늘릴 수 있습니다.
numpy.array_equiv()메소드를 사용하여 Python에서 두 배열 비교
numpy.array_equiv(a1, a2)메소드는 배열a1및a2를 입력으로 취하고 두 배열의 모양과 요소가 동일하면True를 리턴합니다. 그렇지 않으면False를 반환합니다.
두 배열을numpy.array_equiv()메소드에 전달하여 Python에서 비교할 수 있습니다. 아래 예제 코드는numpy.array_equal()메소드를 사용하여 두 배열이 Python에서 동일한 지 확인하는 방법을 보여줍니다.
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
==연산자 및numpy.all()메서드를 사용하여 Python에서 두 배열 비교
==연산자를 배열과 함께 사용하면 두 배열에 해당하는 모양의 배열을 반환합니다. 반환 된 배열은 두 배열의 요소가 해당 인덱스에서 같으면 인덱스에True를 포함하고 그렇지 않으면 배열이됩니다. 해당 색인에False를 포함합니다.
각 요소 대신 두 배열을 비교하고 싶으므로==연산자와 함께numpy.all()메서드를 사용할 수 있습니다. numpy.all()메소드는 주어진 축에있는 모든 입력 배열 요소가True이면True를 반환합니다. 그렇지 않으면False를 반환합니다.
1인 경우True를 반환합니다. 또한 두 배열의 모양이 동일하지 않으면 오류가 발생합니다. 그렇기 때문에 위에서 언급 한 방법을 선호해야합니다.아래 예제 코드는==연산자와numpy.all()메서드를 사용하여 Python에서 두 배열을 비교하는 방법을 보여줍니다.
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