Как можно эффективно хранить матрицу в операциях с фреймами данных Polars и матрицей производительности?Python

Программы на Python
Ответить
Anonymous
 Как можно эффективно хранить матрицу в операциях с фреймами данных Polars и матрицей производительности?

Сообщение Anonymous »

У меня много свиданий. Для каждой даты существует вектор v (длиной n) и квадратная матрица M (размерностью n на n). v, M и n будут различаться в зависимости от даты с точки зрения как значений, так и длин/размеров.
Задача заключается в том, что для каждой даты я хочу выполнить матричную операцию для генерации постоянного скаляра - transpose(v) * M * v.
Наивный способ - сделать это через цикл for, но время вычислений будет огромным, учитывая, что последовательный.
Мне интересно, могу ли я хранить всю информацию в одном Polars Dataframe, чтобы я мог делать что-то вроде df.group_by("date").agg(...), что является параллельным и эффективным.
Чтобы привести конкретный пример:
  • Для даты 2020-01-01, v = [1, 2], M = [[1, 2], [3, 4]], индексы для v и M — ["a", "b"].
  • На дату 2020-02-01, v = [1, 2, 3], M = [[1, 2, 3], [3, 4, 5], [4, 5, 6]] индексами для v и M являются ["a", "b", "c"].
  • На дату 01 марта 2020 г., v = [1, 3, 5], M = [[1, 5, 9], [2, 4, 6], [3, 6, 9]] индексами для v и M являются ["b", "d", "e"].
  • Результат:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/794 ... nce-matrix
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»