सहित मैं परीक्षण करना चाहता हूं कि दो numpy arrays (करीब) बराबर हैं, इसलिए मैं np.allclose
फ़ंक्शन का उपयोग कर रहा हूं। एकमात्र समस्या यह है कि यह True
देता है यदि दो-आयामी मैट्रिक्स और बराबर तत्वों के त्रि-आयामी मैट्रिक्स दिए जाते हैं।परीक्षण करें कि दो numpy arrays (करीब) बराबर हैं, आकार
import numpy as np
x = np.array([[3.14159265, -0.1], [-0.1, 0.1]])
y = np.array([[math.pi, -0.1], [-0.1, 0.1]])
z1 = np.array([[[3.14159265, -0.1], [-0.1, 0.1]],
[[3.14159265, -0.1], [-0.1, 0.1]]])
z2 = np.array([[[math.pi, -0.1], [-0.1, 0.1]],
[[math.pi, -0.1], [-0.1, 0.1]]])
np.allclose(x,y)
# Returns true, as expected
np.allclose(x,z1)
# Also returns true, even though matrices are different shapes. Unwanted.
अब, मैं के बारे में np.array_equal
पता है, जो तत्वों और आकार तुलना, लेकिन यह अगर तत्वों करीब हैं, केवल अगर वे बराबर हैं मुझे परीक्षण करने की अनुमति नहीं देता है। उदाहरण के लिए,
np.array_equal(x,y)
रिटर्न False
वहाँ एक समारोह मैं उपयोग कर सकते हैं कि इस मामले में (x,z1)
के लिए (x,y)
और (z1,z2)
लेकिन झूठे के लिए सच वापस आ जाएगी है?
वहां एक और जांच जोड़ने के बारे में - '(x.shape == z1.shape) और np.allclose (x, z1)'? – Divakar