Я пытаюсь позвонить scipy.stats.multivariate_normal
с четырьмя различными параметрами для му и сигмы. И тогда для каждой генерируемой функции плотности вероятности мне нужно называть это pdf на массив, скажем, 10 значений.Как вызвать функцию с параметрами в качестве матрицы?
Для простоты допустим, что упомянутый выше функция addXY
:
def addXY(x, y):
return x+y
params=[[1,2],[1,3],[1,4],[1,5]] # mu and sigma, four versions
inputs=[1,2,3] # values, in this case 3 of them
matrix = []
for pdf_params in params:
row = []
for inp in inputs:
entry = addXY(*pdf_params)
row.append(entry*inp)
matrix.append(row)
print matrix
Является ли это вещий?
Есть ли способ передать параметры и входы и получить матрицу со всеми комбинациями в ней, которые более пифоничны/векторизованы/быстрее?
Важное замечание: Входы в данном примере являются скалярными значениями (Я настроил скалярные значения, чтобы упростить описание проблемы, я на самом деле, используя массив из п-мерных векторов и, таким образом многомерный _normal PDF).
Подсказки и советы о подобных операциях приветствуются.
* «Я установил скалярные значения, чтобы упростить описание проблемы ...» * Хех, я думаю, что вы упростили слишком много :) (см. мой ответ). Как насчет показа более подходящего примера? Вам нужно, чтобы каждый * mu * был n-мерным вектором, и каждая «сигма» на самом деле будет n-на-n ковариационной матрицей. –
Да, вы правы! Можно ли сделать это с обновленной информацией? –
К сожалению, похоже, что 'multivariate_normal.pdf' не передает свои аргументы, поэтому вы должны написать цикл, чтобы обрабатывать разные средние и ковариационные значения. –