在numpy中读取6个字节的块中的文件

时间:2019-05-15 23:58:37

标签: python python-3.x file numpy

我想以6字节分块(int48)读取numpy中的文件。据我所知numpy dtype仅支持int32,int64,... 我也找到了这种情况的脚本: Reading and storing arbitrary byte length integers from a file

buf = "000000111111222222"
a = np.ndarray(len(buf), np.dtype('>i1'), buf)
e = np.zeros(len(buf) / 6, np.dtype('>i8'))
for i in range(3):
    e.view(dtype='>i2')[i + 1::4] = a.view(dtype='>i2')[i::3]
[hex(x) for x in e]

我将这个代码用于一个大小为1GB,读取速度为10s的文件,但是在我的项目中使用此代码太慢了。您能提出更好的主意来读取numpy(6字节块)中的文件吗? 请注意,numpy在0.5s内读取了dtype int64的1GB文件,我想实现这一结果。

0 个答案:

没有答案