dic = {
"key1": array([1,2,3]),
"key2": array([4,5,6]),
"key3": array([7,8,9]),
}
のような辞書型オブジェクトは、
np.savez("numpy_key_value", **dic)
もしくは
np.savez_compressed("numpy_key_value", **dic)
で保存すると
loaded = np.load("numpy_key_value.npz")
print(loaded["key1"]) #=> array([1,2,3])
というように扱えます
(詳しく検証してはいませんが、pickle.dumpよりサイズが小さくなるというようなことは無さそうだったので、サイズを気にする場合は対象データで比較することをおすすめします)