Я вижу только, как это сделать с помощью классического цикла for:
Код: Выделить всё
import numpy as np
from scipy.stats import multivariate_normal
# Generate example data
N = 5 # Small number for minimal example, can be increased for real use case
points = np.random.rand(N, 3)
means = np.random.rand(N, 3)
covs = np.array([np.eye(3) for _ in range(N)]) # Identity matrices as example covariances
# Initialize an array to store the PDF values
pdf_values = np.zeros(N)
# Loop over each point, mean, and covariance matrix
for i in range(N):
pdf_values[i] = multivariate_normal.pdf(points[i], mean=means[i], cov=covs[i])
print("Points:\n", points)
print("Means:\n", means)
print("Covariances:\n", covs)
print("PDF Values:\n", pdf_values)
Может быть, какая-то реализация не из scipy?
Может быть, я слишком надеюсь, но почему-то я надеюсь, что есть более простой способ ускорить это и избежать итерации с этим циклом for в большой массив данных непосредственно с помощью цикла Pythonic.
Подробнее здесь: https://stackoverflow.com/questions/787 ... normal-pdf