У меня много свиданий. Для каждой даты существует вектор 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"].
У меня много свиданий. Для каждой даты существует вектор v (длиной n) и квадратная матрица M (размерностью n на n). v, M и n будут различаться в зависимости от даты с точки зрения как значений, так и длин/размеров. Задача заключается в том, что для каждой даты я хочу выполнить матричную операцию для генерации постоянного скаляра - transpose(v) * M * v. Наивный способ - сделать это через цикл for, но время вычислений будет огромным, учитывая, что последовательный. Мне интересно, могу ли я хранить всю информацию в одном [b]Polars[/b] Dataframe, чтобы я мог делать что-то вроде df.group_by("date").agg(...), что является параллельным и эффективным. Чтобы привести конкретный пример: [list] [*]Для даты 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"]. [*]Результат: [/list] [img]https://i.sstatic.net/yrtkYU40.png[/img]