I don't think it's optimal to read the data in and reshape it the way we do currently in `file_to_np`. Can we cut out one of the intermediate steps? And is there an easy way to support files too large to fit in memory?