У меня есть функция f
, которая содержит ряд матричных операций и возвращает сравнительно большой массив NumPy (не менее 576x576), и я хочу сэмплировать эту функцию по диапазону точек и построить словарь из соответствующегозначения для последующего использования.Я делаю это, используя код:
def dict_construct(range):
d = {}
for i in values:
d[i] = f(i)
return d
, когда я выбираю диапазон со слишком большим количеством точек, тогда я использую swp-память на моем ноутбуке, и время вычислений пролетает сквозь крышу.Как ни странно, моя физическая память ограничена ~ 30% (у меня MacBook Pro с 8 ГБ ОЗУ).
Итак, у меня есть два вопроса: 1) почему используется своп, когда достаточно памяти?2) есть ли более разумный способ построить / или сохранить такой словарь?т.е. может добавлять каждый элемент непосредственно в файл, поэтому очень мало хранится в оперативной памяти.