我numpy.memmap
过去只将数组的一部分加载到我需要的内存中,而不是加载整个巨大的数组。我想对bool
数组做同样的事情。
不幸的是,bool
memmap 数组的存储并不经济:根据ls
, memmap 文件需要与相同数组形状bool
的 memmap 文件一样多的空间。uint8
所以我用它numpy.unpackbits
来节省空间。不幸的是,它似乎并不懒惰:它很慢并且可能导致 a MemoryError
,因此显然它将数组从磁盘加载到内存中,而不是在数组上提供“bool
视图” uint8
。
因此,如果我只想bool
从文件中加载数组的某些条目,我首先必须计算uint8
它们属于哪些条目,然后应用于该条目numpy.unpackbits
,然后再次对其进行索引。
难道没有一种懒惰的方式来获得bool
对位压缩的 memmap 文件的“视图”吗?