Можно ли объединить несколько (> 2) матриц на основе имен строк И столбцов и весового коэффициента? - PullRequest
0 голосов
/ 17 января 2020

У меня есть список, который содержит сотни матриц, каждая с именами столбцов и строк. Каждая матрица немного отличается друг от друга - некоторые содержат определенные имена столбцов и строк, которые другие не будут иметь. У меня также есть вектор весов (от 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
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...