Para mi prueba unitaria, quiero verificar si dos matrices son idénticas. Ejemplo reducido:comparando matrices numpy que contienen NaN
a=np.array([1, 2, np.NaN])
b=np.array([1, 2, np.NaN])
if np.all(a==b):
print 'arrays are equal'
Esto no funciona porque nan! = Nan. ¿Cuál es la mejor manera de proceder?
Gracias de antemano.
Excelente, esta es la solución más elegante e integrada. Acabo de agregar 'np.testing.assert_equal (a, b)' en mi prueba unitaria, y si aumenta la excepción, la prueba falla (sin error), e incluso obtengo una buena impresión con las diferencias y la falta de coincidencia. Gracias. – saroele
Tenga en cuenta que esta solución funciona porque 'numpy.testing.assert_ *' no sigue la misma semántica de python 'assert''s. En las excepciones simples de Python 'AssertionError' se plantean iff' __debug__ es True', es decir, si el script se ejecuta no optimizado (no -O indicador), vea el [documento] (http://docs.python.org/3.3/reference /simple_stmts.html#grammar-token-assert_stmt). Por esta razón, desaconsejaría encarecidamente envolver 'AssertionErrors' para el control de flujo. Por supuesto, dado que estamos en un banco de pruebas, la mejor solución es dejar el numpy.testing.assert solo. –