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