我对代码做了以下调整。这将修改
time
阵列就位&消除了对所有中间数组的需要。我没有给结果计时,但它需要的内存应该更少。
time = np.zeros(fidx.shape,dtype='f8')
scale = np.array([8640000, 86400, 3600, 60, 1, .01, .0001, .000001],dtype='f8')
for ii,sf in enumerate(scale):
time = time + ((rawData[fidx+ii]>>4)*10 + (rawData[fidx+ii]&0x0F))*sf