использование памяти zip ()

У меня есть сценарий, который принимает координаты x, y и z, создает сетку и интерполирует координаты. Затем он смотрит, находятся ли точки в определенном полигоне. При запуске скрипта я получил ошибку памяти. Чтобы найти проблему с использованием памяти, я установил memory_profiler и нашел результат, показанный ниже:

61 # define grid. 62 156.887 MiB 0.000 MiB xi = np.arange(roundDown(XZ[~np.isnan(XZ)].min(),5), roundUp(XZ[~np.isnan(XZ)].max(), 5)+5, 5).astype(np.int32) 63 156.887 MiB 0.000 MiB yi = np.arange(roundDown(YZ[~np.isnan(YZ)].min(),5), roundUp(YZ[~np.isnan(YZ)].max(), 5)+5, 5).astype(np.int32) 64 325.457 MiB 168.570 MiB gxi, gyi = np.meshgrid(xi, yi) 65 493.922 MiB 168.465 MiB zi = griddata((XZ[~np.isnan(XZ)].ravel(), YZ[~np.isnan(YZ)].ravel()), dep[~np.isnan(dep)].ravel(), (gxi, gyi), method='linear') 66 67 ## sel = ~np.isnan(zi.ravel()) 68 69 ## xList = gxi.ravel()[~np.isnan(zi.ravel())] 70 ## yList = gyi.ravel()[~np.isnan(zi.ravel())] 71 563.383 MiB 69.461 MiB zList = zi.ravel()[~np.isnan(zi.ravel())] 72 73 ## points = zip(xList, yList) 74 1239.020 MiB 675.637 MiB points = zip(gxi.ravel()[~np.isnan(zi.ravel())], gyi.ravel()[~np.isnan(zi.ravel())]) 

Я понимаю, что, учитывая, что есть много точек, gxi, gyi и zi используют довольно некоторую память, но почему функция zip () также использует много памяти?

Я попытался использовать itertools.izip (), но поскольку точки должны перейти в другую функцию (matplotlib.path.Path.contains_points), которая, похоже, требует список кортежей вместо генератора, который не работает.

Есть ли у кого-нибудь советы по разрешению вопроса?

Благодаря!