如何最有效地对大型(100, 1024, 1024) .npz文件求和?有没有更好的文件格式来存储给定维度的python数据?我现在用它来对矩阵求和:
(100, 1024, 1024) .npz
summed_matrix = np.sum([np.load(file) for file in files_list])
字符串这超出了我的可用内存。
i5desfxk1#
目前,您正在一次加载所有文件,然后才开始求和。如果内存是一个问题,更好的方法是一次读取并添加一个:
summed_matrix = np.zeros((100, 1024, 1024)) for file in files_list: summed_matrix += np.load(file)
字符串
llycmphe2#
你可以尝试使用functools.reduce和numpy.add生成器:
functools.reduce
numpy.add
from functools import reduce summed_matrix = reduce(np.add, (np.load(file) for file in files_list)) # or functional-style summed_matrix = reduce(np.add, map(np.load, files_list))
2条答案
按热度按时间i5desfxk1#
目前,您正在一次加载所有文件,然后才开始求和。如果内存是一个问题,更好的方法是一次读取并添加一个:
字符串
llycmphe2#
你可以尝试使用
functools.reduce
和numpy.add
生成器:字符串