NumPy 陣列相等

Muhammad Maisam Abbas 2023年1月30日
  1. 在 Python 中使用 == 運算子檢查 NumPy 陣列的相等性
  2. 使用 numpy.array_equal() 函式檢查 NumPy 陣列的相等性
  3. 使用 Python 中的 numpy.array_equiv() 函式檢查 NumPy 陣列的相等性
  4. NumPy 等於 Python 中的 numpy.allcloses() 函式
NumPy 陣列相等

本文將介紹在 Python 中對 NumPy 陣列進行逐元素相等比較的方法。

在 Python 中使用 == 運算子檢查 NumPy 陣列的相等性

== 相等比較運算子用於檢查兩個數量是否相等。如果數量相等,== 運算子返回 True,如果數量不相等,則返回 False。我們可以使用 == 運算子和 all() 函式來檢查兩個陣列的所有元素是否相等。下面的程式碼示例向我們展示瞭如何使用 Python 中的 == 運算子按元素比較兩個陣列的相等性。

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 中的值。這種方法非常有效且易於理解,但使用這種方法有一些缺點。例如,如果其中一個陣列為空,而第二個陣列僅包含一個元素,則此方法將返回 True 值。另一個問題是,如果兩個陣列的形狀不同,這種方法會給我們帶來錯誤。

使用 numpy.array_equal() 函式檢查 NumPy 陣列的相等性

實現與前一種方法相同的目標的更徹底和無錯誤的方法是使用 numpy.array_equal() 函式。numpy.array_equal() 函式比較兩個陣列的相等性。numpy.array_equal() 函式在陣列相等時返回 True,如果陣列不相等則返回 False。下面的程式碼示例向我們展示瞭如何使用 numpy.array_equal() 函式按元素比較兩個陣列的相等性。

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 中檢查兩個陣列是否相等。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() 函式來檢查 array1 是否等於 array2

NumPy 等於 Python 中的 numpy.allcloses() 函式

numpy.allclose() 函式還可用於檢查 Python 中的兩個陣列在元素方面是否相等。如果兩個陣列中的所有元素在指定容差範圍內相等,則 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() 函式來檢查 array1 是否等於 array2

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