在Python中,NumPy是一個廣泛使用的計算庫。它允許我們在Python中高效地進行科學計算,並提供了許多常見的數學操作和函數。在NumPy中,大多數數據類型都是ndarray(n-dimensional array)類型的數據,它是一種多維數組。
一、什麼是expectednp.ndarray(gottenso)
在進行函數測試時,我們通常會使用assert語句來確保函數的輸出是否等於預期的結果。在NumPy測試中,我們也使用assert_array_equal或assert_allclose函數來測試我們所期待的ndarray數組是否與實際得到的ndarray數組相同。其中,assert_array_equal用於嚴格測試兩個數組是否相同,而assert_allclose則比較兩個數組之間的差異,並根據給定的容差值判斷它們是否「幾乎相等」。
二、如何使用expectednp.ndarray(gottenso)
使用assert_array_equal或assert_allclose函數進行測試很簡單。下面是一個簡單的例子,演示如何使用assert_array_equal函數來測試兩個ndarray數組是否相同:
import numpy as np
# 預期的結果
expected = np.array([1, 2, 3])
# 獲取實際結果
got = np.array([1, 2, 3])
# 進行測試
np.testing.assert_array_equal(expected, got)
如果測試通過,沒有拋出異常,那麼就說明測試成功。如果測試失敗,將會拋出一個異常,並顯示具體的測試失敗細節。
三、如何理解expectednp.ndarray(gottenso)的返回值
正如前面所提到的,assert_array_equal用於嚴格測試兩個數組是否相同,而assert_allclose則比較兩個數組之間的差異,並根據給定的容差值判斷它們是否「幾乎相等」。
assert_allclose還允許我們指定一些其他的可選參數,用於調整測試的敏感度。下面是一個簡單的例子,演示如何使用assert_allclose函數來測試兩個ndarray數組是否幾乎相等:
import numpy as np
# 預期的結果
expected = np.array([1, 2, 3])
# 獲取實際結果
got = np.array([1.00001, 1.99999, 2.99999])
# 進行測試
np.testing.assert_allclose(expected, got, rtol=1e-5, atol=1e-5)
在這個例子中,我們將rtol和atol參數設置為1e-5,表示相對容差和絕對容差都是1e-5。這意味著,兩個數組之間的相對差異和絕對差異都必須小於1e-5,即它們幾乎相等。
四、小結
在測試NumPy函數的輸出時,assert_array_equal和assert_allclose函數是非常有用的工具。assert_array_equal用於嚴格測試兩個數組是否相同,而assert_allclose比較兩個數組之間的差異,並根據給定的容差值判斷它們是否「幾乎相等」。使用這些函數可以提高代碼的可靠性和穩定性,確保我們的代碼輸出符合預期。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/303442.html