我正在将.bed文件转换为1D numpy float数组。稍后,我将需要这个1D numpy浮点数组。对于大约700个.bed文件,将它们保存在1D numpy数组中非常昂贵
我的解决方案是将它们转换成字符串数组并连续连接起来,以便以后可以按连接顺序检索它们。如下图所示获取最后一个数组
import numpy as np
array_size=10000
number_of_files=700
sample1 = np.random.uniform(low=0.5, high=13.3, size=(1,array_size))
s1 = np.array(["%.2f" % x for x in sample1.reshape(sample1.size)])
np.save('test',s1)
for i in range(number_of_files):
sample = np.random.uniform(low=0.5, high=13.3, size=(1,array_size))
s = np.array(["%.2f" % x for x in sample.reshape(sample.size)])
s_temp=np.load('test.npy',mmap_mode='r')
s_new=['%s_%s' %(x,y) for x,y in zip(s_temp,s)]
np.save('test',s_new)
result=np.load('test.npy')
last=[x.split('_')[100] for x in result]
但是,我的测试代码显示,这个字符串数组的开销要大得多。 存储250M大小的1D numpy float的成本为1.9gb。 700个文件就能赚1330克
存储10K大小的1D numpy字符串数组需要143MB。 (250M/10K)*143MB将产生3575GB
对于这个表示和以后的检索问题,您有更好的解决方案吗
目前没有回答
相关问题 更多 >
编程相关推荐