我想以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文件,我想实现这一结果。