Предположим, что у вас есть сотни массивов numpy, и вы хотите рассчитать корреляцию между ними. Я вычислил его с помощью вложенных циклов. Но выполнение потребовало огромного времени (20 минут!). Один из способов сделать этот расчет более эффективным - рассчитать одну половину диагонали корреляционной таблицы, скопировать ее в другую половину и сделать диагональную линию равной 1. Я имею в виду, что корреляция (x, y) = корреляция (y, x), а корреляция (x, x) всегда равна 1. Однако с этими исправлениями код также займет много времени (около 7-8 минут). Любые другие предложения?Таблица корреляции
My code
for x in data_set:
for y in data_set:
correlation = np.corrcoef(x,y)[1][0]
Вы считаете использование ['multiprocessing'] (https://docs.python.org/3/library/multiprocessing.html), поскольку это довольно параллельная проблема? – CoryKramer
Нет, я ничего не знаю об этом пакете. Можете ли вы написать более быстрое решение этой проблемы с помощью многопроцессорной обработки? –
Можете ли вы объяснить, что такое набор данных, возможно, предоставляя минимальный воспроизводимый пример? – FLab