У меня есть список, который содержит сотни матриц, каждая с именами столбцов и строк. Каждая матрица немного отличается друг от друга - некоторые содержат определенные имена столбцов и строк, которые другие не будут иметь. У меня также есть вектор весов (от 0 до 1) для применения к каждой из матриц простым умножением.
Я пытаюсь объединить их все в одну большую матрицу, которая содержит ВСЕ имена строк и ВСЕ имена столбцов. Я нашел сообщение о SO ( здесь ), которое помогло, когда я тестировал код только с 10 матрицами в списке. В посте пользователь только комбинировал две матрицы. Однако, так как я комбинировал несколько, мне пришлось свернуть свою функцию во вложенные циклы for. Однако, поскольку я сейчас выполняю код в реальном времени, он больше не работает, поскольку общая матрица слишком велика (1200+ строк на 2300+ столбцов).
Рад объяснить, если это не имеет смысла в другом посте.
Трудно вставить пример кода для таких больших наборов данных, но я постараюсь сделать пример ниже.
markov_chains is a list with many matrices
markov_chains[[1]] =
a b c d ...
v 1 1 1 0
w 1 1 0 1
x 1 0 1 1
y 0 1 1 1
...
markov_chains[[2]] =
d e aa a ...
y 1 1 1 0
w 1 1 0 1
v 1 0 1 1
z 0 1 1 1
...
но представьте, что у каждого из этих столбцов было 1000 строк и 1000 столбцов. Каждая матрица также имеет весовую функцию, например, 0,5 для [ 1 ], 0,22 для [[2]] и др. c.
В конце я пытаюсь объединить их в какую-то мастер-матрицу, как показано ниже:
markov_master =
a b c d e ... aa ... zzz
z 0.7 0.1 0.2 1.2 0.9 ... 0.1 ... 4
y 1 1.5 1.2 0.4 0.1 ... 6.5 ... 7
x 1.1 0.5 2.3 7.0 0.7 ... 2.9 ... 2
w 0.9 1.5 5.8 4.1 0.2 ... 7.9 ... 1.1
...