My code is creating a `dict` (with strings as keys and numpy arrays as values), which is too big too fit into the RAM, so the program is crashing ('Cannot allocate memory','killed','aborted'). 

Having read some SO articles, I got the impression, that I would need to use a database to handle this case. But which one should I use? The [bsddb - Interface to Berkeley DB library](http://docs.python.org/library/bsddb.html#module-bsddb) recommended @ [Python Disk-Based Dictionary](https://stackoverflow.com/questions/226693/python-disk-based-dictionary) only accepts strings as values, which does make it seem very cumbersome to use it with numpy arrays. I also looked briefly at [sqlite3](http://docs.python.org/library/sqlite3.html) recommended @ [How to handle Out of memory with Python](https://stackoverflow.com/questions/4223130/how-to-handle-out-of-memory-with-python), but I would really like to avoid using SQL do access my data.

What would you recommend?