给定一个数值二进制文件,我可以使用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 格式。