#python #numpy #scipy #particle-filter
#python #numpy #scipy #фильтр частиц
Вопрос:
У меня есть несколько вопросов scipy.stats.multivariate_normal
.
- Что он возвращает? Я понимаю, что при использовании:
var = scipy.stats.multivariate_normal(mean, cov) z = var.pdf([x,y])
Я получу в z pdf-файл этого индекса. Это правда?
- Я предположил, что заданное среднее значение является пиком pdf. Я прав?
- Я хочу создать 4D-карту гауссовского pdf и выбрать из нее случайным образом, по pdf,
N
точкам (для прогнозирования фильтра частиц). Для использованияnp.choose
мне нужно создать массив значений формы(M,1)
в формате pdf и массив из 4 точек формы(M, 4)
.
Есть ли более эффективный способ сделать это?
Ответ №1:
Нормальное распределение довольно распространено и реализовано во многих разных местах, поэтому я думаю, вам было бы лучше использовать случайную нормальную выборку из numpy: https://numpy.org/doc/stable/reference/random/generated/numpy.random.normal.html . В этой функции вы можете указать форму вывода.
Ответ №2:
используя ответ DIN, это то, что я сделал:
x_predict = np.random.normal(mean[0], covs[0], N)
y_predict = np.random.normal(mean[1], covs[1], N)
sx_predict = np.random.normal(mean[2], covs[2], N)
sy_predict = np.random.normal(mean[3], covs[3], N)
particles = np.dstack((x_predict, y_predict, sx_predict, sy_predict))