Путаница с синтаксисом линейной алгебры в python - PullRequest
0 голосов
/ 23 февраля 2020

Пожалуйста, дайте мне знать, если я нахожусь в нужном месте. Это мой первый раз здесь.

В части "else", пожалуйста, дайте мне знать, что означает часть "for v in x c", особенно в отличие от точечных продуктов в нескольких строках. выше него и какую роль играет обратная коса sh после «факта»?

В случае len = 1 мы расставляем точки вектора с матрицей, которая на самом деле не является точечным произведением, а умножением матрицы. Но, я думаю, numpy .dot допускает это. В другом случае, обрабатывать векторы строки (или столбца?) По x c по одному, чтобы оставить вектор (вместо скаляра, как в случае len = 1)? И, если это так, означает ли это, что numpy .dot допускает матрицу векторных времен, но не матрицу временных матриц?

def pdf(x,mu,sigma):
    d=np.alen(mu)
    dfact1=(2*np.pi)**d
    dfact2=np.linalg.det(sigma)
    fact=1/np.sqrt(dfact1*dfact2)
    xc=x-mu
    isigma=-0.5*np.linalg.inv(sigma)
    if len(np.shape(x)) == 1:
      return fact*np.exp(np.dot(np.dot(xc, isigma),xc))
    else:
      return fact\
        *np.exp(
            [np.dot(np.dot(v, isigma),v) for v in xc]
        )
...