python - python中关于线性代数语法的困惑
问题描述
如果我在正确的地方,请告诉我。这是我第一次来这里。
在“else”部分,您能否让我知道“for v in xc”部分的含义,特别是与上面几行的点积相比,以及“fact”之后的反斜杠起什么作用?
在 len = 1 的情况下,我们将向量与矩阵点在一起,这实际上不是点积,而是矩阵乘法。但是,我猜 numpy.dot 允许它。对于 else 情况,是否一次处理 xc 中的行(或列?)向量以留下向量(而不是 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]
)
解决方案
推荐阅读
- javascript - 为图像创建模态的上一个和下一个交互
- debugging - 硬件断点之前内核上的硬件断点功能
- javascript - 在变量达到预定义值后运行函数
- android - Google Maps Place API - SKU:自动完成(包含在 Places 详细信息中)- 每个会话
- reactjs - 如何构建嵌套的 React 路由器以避免错误:重定向到您所在的同一条路线
- c# - 从 asp.net 控制器将自定义成功/错误消息传递给 ajax 调用
- swift - CIDetector人脸检测实时但是内存消耗线性增加如何避免这个问题?
- c# - 通过 Web 服务控制 USB 设备
- java - 通过 Java ProcessBuilder 激活 virtualenv
- node.js - heroku 构建成功,但在 heroku 打开时 url 给出了应用程序错误