Use numpy.savez_compressed rather than pickle - to save space, and more importantly, avoid the 4GiB pickle limit.