np.memmap作用
内存映像文件是一种将磁盘上的非常大的二进制数据文件当做内存中的数组进行处理的方式。NumPy实现了一个类似于ndarray的memmap对象,它允许将大文件分成小段进行读写,而不是一次性将整个数组读入内存。memmap也拥有跟普通数组一样的方法,因此,基本上只要是能用于ndarray的算法就也能用于memmap。
使用函数np.memmap并传入一个文件路径、数据类型、形状以及文件模式,即可创建一个新的memmap:
为存储在磁盘上的二进制文件中的数组创建内存映射。
内存映射文件用于访问磁盘上的大段文件,而无需将整个文件读入内存。NumPy的memmap是类似数组的对象。这与Python的mmap模块不同,后者使用类似文件的对象。
pandas的处理速度要比numpy慢,而遇到特别大的数组、矩阵时,numpy将数据读入内存也会发生IO内存不足,即便读入了内存操作也很慢,这时候用memmap。
memmap可以将大文件分小段读写。使用时,会先为磁盘上的数据创建一个映射,对映射赋值,然后保存即可将数据写入磁盘。读取时也是通过映射,将修改通过映射写入磁盘。
创建memmap
fp = np.memmap(filename, dtype=‘float32’, mode=‘w+’, shape=(3,4))
赋值写入memmap
fp[:] = data[:]
删除(或关闭)memmap
del fp
读取memmap
fpr = np.memmap(filename, dtype=‘float32’, mode=‘r’, shape=(3,4))
参考资料:
np.memmap作用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示