Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Comparing two dictionaries with numpy matrices as values

I want to assert that two Python dictionaries are equal (that means: equal amount of keys, and each mapping from key to value is equal; order is not important). A simple way would be assert A==B, however, this does not work if the values of the dictionaries are numpy arrays. How can I write a function to check in general if two dictionaries are equal?

>>> import numpy as np
>>> A = {1: np.identity(5)}
>>> B = {1: np.identity(5) + np.ones([5,5])}
>>> A == B
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

EDIT I am aware that numpy matrices shall be checked for equality with .all(). What I am looking for is a general way to check for this, without having to check isinstance(np.ndarray). Would this be possible?

Related topics without numpy arrays:

  • Comparing two dictionaries in Python
  • Comparing/combining two dictionaries
like image 874
physicalattraction Avatar asked Oct 17 '14 08:10

physicalattraction


1 Answers

You can use numpy.testing.assert_equal

http://docs.scipy.org/doc/numpy/reference/generated/numpy.testing.assert_equal.html

like image 169
vitiral Avatar answered Sep 16 '22 14:09

vitiral