我正在执行统计测试,使用10,000个排列作为空分布.
每个排列都是10,000个密钥字典.每个关键词都是一个基因,每个值都是一组对应基因的患者.该字典是以编程方式生成的,可以写入文件并从文件读入.
我希望能够迭代这些排列来执行我的统计测试; 但是,将这个大型列表保留在堆栈上会降低我的性能.
有没有办法将这些字典保存在存储的内存中,并在迭代它们时产生排列?
谢谢!
这是一个一般的计算问题;您想要内存存储数据的速度,但没有足够的内存。您至少有以下选择:
由于您正在迭代数据集,一种解决方案可能是延迟加载数据:
def get_data(filename):
with open(filename) as f:
while True:
line = f.readline()
if line:
yield line
break
for item in get_data('my_genes.dat'):
gather_statistics(deserialize(item))
Run Code Online (Sandbox Code Playgroud)
一种变体是将数据拆分为多个文件或将数据存储在数据库中,以便您可以一次批量处理 n 项数据。
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |