title: Python how to index multidimensional array with string key, like a dict
body: <p>I would like to combine the functionality of numpy's <code>array</code> with native python's <code>dict</code>, namely creating a multidimensional array that can be indexed with strings.</p>
  
  <p>For example, I could do this:</p>
  
  <pre><code>dict_2d = {'a': {'x': 1, 'y': 2},
             'b': {'x': 3, 'y': 4}}
  print dict_2d['a','y']  # returns 2
  </code></pre>
  
  <p>I know I could do <code>dict_2d['a']['x']</code> but long term I'd like to be able to treat them like numpy arrays including doing matrix multiplication and such and thats not possible with layered dicts.</p>
  
  <p>Its also not that hard to write up a simple version of the class where I just use the class to convert all the strings to int indexes and then use numpy but I'd like to use something that already exists if possible.</p>
  
  <p>Edit: I don't need incredible performance. I'll be working with maybe 10x10 arrays. My goal is to make writing the code simple and robust. Working with numpy arrays is not really much different than just writing it in Fortran. I've spent enough of my life tracking down Fortran indexing errors...</p>