其他分享
首页 > 其他分享> > np.memmap读取大文件

np.memmap读取大文件

作者:互联网

Numpy中的ndarray是一种新形式的Python内建类型。因此,它可以在需要时被继承。ndarray形成了许多有用类的基础。
np.memmap就是其中一种,它是内存映射文件。本质上就是使用C语言中的fseek随机访问文件的任何一个位置执行读写操作。当一个特别大的数组无法常驻内存时,np.memmap非常有用。

参数类型:

memmap默认的文件打开方式是r+。

import numpy as np

a = np.random.randint(0, 10, (3, 4), dtype=np.int32)
print(a)
a.tofile("haha.bin")
b = np.memmap("haha.bin", dtype=np.int32, shape=(3, 4))
print(b)
b[0, 0] = 100
del b  # 关闭文件,自动调用数组的finalize函数
b = np.memmap("haha.bin", dtype=np.int32, shape=(3, 4))
print(b)

输出为:

[[7 7 7 3]
 [9 3 7 9]
 [0 7 8 8]]
[[7 7 7 3]
 [9 3 7 9]
 [0 7 8 8]]
[[100   7   7   3]
 [  9   3   7   9]
 [  0   7   8   8]]

参考资料

https://docs.scipy.org/doc/numpy/reference/arrays.classes.html

标签:文件,读取,dtype,shape,数组,np,memmap
来源: https://www.cnblogs.com/weiyinfu/p/10740529.html