Вы можете сохранить общий объект Python с помощью Pytables:
>>> dtype = np.dtype([('Name', '|S2'), ('objValue', object)])
>>> data = np.zeros(3, dtype)
>>> file = tables.openFile('/tmp/test.h5', 'w')
>>> myobjects = file.createVLArray(file.root, 'myobjects', tables.ObjectAtom())
>>> myobjects.append(data)
>>> myobjects[0]
array([('', 0), ('', 0), ('', 0)],
dtype=[('Name', '|S2'), ('objValue', '|O8')])
Однако при этом будет использоваться pickle (фактически cPickle), поэтому вы не сможете получить доступ к этим объектам с других языков (pickle - это формат сериализации, поддерживаемый только самим Python).