2013-07-02 6 views
2

Прежде всего, я знаю, что матрица и массив представляют собой два разных типа данных в NumPy. Но я поставил оба в заголовке, чтобы сделать его общим вопросом. Если вы редактируете этот вопрос, не стесняйтесь удалить его. Хорошо, вот мой вопрос,Умножение многомерных матриц (массивов) в Python

Вот отредактировав исходный вопрос. Рассмотрим цепь Маркова с двумерным вектором состояния x_t = (y_t, z_t), где y_t и z_t - оба скаляра. Каков наилучший способ представления/хранения/манипуляции матрицей перехода этой Марковской цепи?

Теперь я объяснил, что это упрощенная версия моей проблемы. Мой вектор состояния цепи Маркова представляет собой вектор 5 * 1. Надеюсь, это уточнит

+1

Можете ли вы точно показать, какую операцию вы пытаетесь выполнить - из 'y_sub (i, j) = sum_over_k (x_sub (i, j, k) * y_sub (i, j, k))' kind? – Floris

+0

@Floris: Я редактировал мой вопрос. Надеюсь, это прояснится. Спасибо за ваш комментарий и помощь. – NNsr

ответ

2

Предположим, вы пытаетесь использовать цепь Маркова для моделирования синтаксиса английского предложения. Ваша матрица перехода даст вам вероятность перехода от одной части речи к другой части речи. Предположим теперь, что мы используем модель 3 rd -order Markov. Это даст возможность перейти от состояния 123 к 23X, где X является допустимым состоянием.

Марковская матрица перехода будет N x N, которая по-прежнему является двумерной матрицей независимо от размерности состояний. Если вы генерируете распределения вероятностей на основе эмпирических данных, тогда в этом случае должны быть состояния с вероятностью 0.

Если вы беспокоитесь о разреженности, возможно, массивы - не лучший выбор. Вместо использования массива массивов, возможно, вы должны использовать словарь словарей. Или, если у вас много матриц перехода, массив словарей словарей.

EDIT (основываясь на комментарии): Вы правы, это сложнее. Тем не менее, для любого состояния (i,j) существует распределение вероятности для перехода в следующее состояние, (m,n). Следовательно, у нас есть наш «внешний» словарь, ключи которого являются всеми возможными состояниями. Каждый ключ (состояние) указывает на значение, которое является словарем, который содержит распределение вероятности для этого состояния.

+0

Я отредактировал мой вопрос. Надеюсь, это прояснится. Спасибо за ваш ответ и помощь. – NNsr

+1

@NNsr, я тоже отредактировал свой ответ. –

+0

Спасибо за ваш ответ. Я думаю, моя проблема немного отличается, потому что мои переходы немного сложнее, чем вы объяснили. Мои переходы от скажем (1,3) до (2,5) или вообще говоря от (i, j) до (m, n), где 0 <= i, m <= P и 0 <= j, n < = Q. Как вы думаете, я могу использовать ваш подход? Спасибо – NNsr

Смежные вопросы