Python, профилирование памяти

Рейтинг: 0Ответов: 0Опубликовано: 22.08.2023

Есть два алгоритма выдающие одинаковый результат. В качестве исходных данных используются два двумерных массива, задача алгоритмов произвести поиск индексов строк, в которых совпадают первые 5 элементов в обоих массивах, и вывести двумерный массив пар этих индексов. Вот обе реализации:

matches = np.array(np.all((np.round(array1[:,:ibeta+1], decimals=4)[:, None, :] == np.round(array2[:,:ibeta+1], decimals=4)[None, :, :]), axis=-1).nonzero()).T
matches = np.array([])
for i in range(array1.shape[0]):
    correspond_map = np.all((np.round(array1[i, :ibeta+1], decimals=4) == np.round(array2[:,:ibeta+1], decimals=4)), axis=-1)
    idx = np.where(correspond_map)[0]
    if idx.shape[0] != 0:
        if matches.shape[0] != 0:
            matches = np.vstack((matches, np.array([i, idx[0]])))
        else:
            matches = np.array([i, idx[0]])

Необходимо сравнить затрачиваемую оперативную память на оба алгоритма. Memory profiler либо выдает чушь либо я не правильно его использую. Подскажите пожалуйста как правильно замерить оперативку на обе реализации.

Ответы

Ответов пока нет.