给定一个数值二进制文件,我可以使用numpy.fromfile(). 这为数据分配了一个新数组。假设我已经有一个数组a,我想读入这个数组。我不得不做类似的事情
import numpy as np
size = 1_000_000_000
size_chunk = 1_000_000
a = np.empty(size, dtype=np.double)
with open('filename', 'rb') as f:
tmp = np.fromfile(f, dtype=np.double, count=size_chunk)
a[:size_chunk] = tmp
在哪里使事情一般a比读入的数据大tmp。我想避免tmp直接读入a. 请注意,虽然
a[:size_chunk] = np.fromfile(f, dtype=np.double, count=size_chunk)
隐藏tmp变量,不必要的临时内存还在。
我想像
np.fromfile(f, dtype=np.double, count=size_chunk, into=a[:chunk_size])
虽然没有into实现这样的关键字。
我怎样才能做到这一点?我也愿意使用 SciPy 或其他 Python 包。我会注意到 H5Py 包有一个read_direct()我想要的,除了我的数据文件是原始二进制文件而不是 HDF5 格式。