У меня довольно большая матрица формы (80000, 4), она содержит много данных, большинство из которых мне не нужны.
Часть моего процесса включает вычисление матрицы парных расстоянийи этот процесс равен O (n ^ 2) для количества строк, поэтому я могу значительно сократить время обработки путем понижающей дискретизации
Я попытался использовать метод numpy.linspace, например, так:
downsample_factor = np.linspace(0, large_matrix.shape[0]-1, 20000, dtype=int)
large_matrix = large_matrix[downsample_factor, :]
В этом примере large_matrix
имеет форму (80000,4), и я уменьшаю его до (20000,4)
Этот код успешно уменьшает размер large_matrix
, но не '• фактически освобождает память.
Есть ли другой способ освободить ОЗУ путем сокращения выборки большого массива?
РЕДАКТИРОВАТЬ:
Программа получает Killed
сообщений при запускене хватает оперативной памятиЯ заметил, что большие массивы получали сообщения Killed
даже после понижающей выборки, тогда как небольшие массивы с самого начала не убивались.