这里最好的矢量化方法是什么?

2024-05-04 18:51:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道什么是矢量化以下公式的最佳方法:

c= Sum(u(i)*<u(i),y>/v(i) )

<.,.>表示两个矩阵的点积。你知道吗

假设我们有一个矩阵K= U*Diag(w)*U^-1wu是大小为nxn的矩阵k的特征值和特征向量)。并且y是大小为n的向量。你知道吗

所以如果:

k=np.array([[1,2,3],[2,3,4],[2,7,8]])
y=np.array([1,4,5])
w,u=np.linalg.eigh(k)

然后:

w=array([ -2.02599523,   0.47346124,  13.552534  ])


u=array([[-0.18897996,  0.95770742,  0.21698634],
        [ 0.82245177,  0.03363605,  0.5678395 ],
       [-0.53652554, -0.28577109,  0.79402471]])

我就是这样实现的:

uDoty=np.dot(u,y)
div=np.divide(y,w)

div=np.divide(uDoty,w)
r=np.tile(div,(len(u),1))
a=u*r.T
c=sum(a) 

但事实上我。所以呢有什么建议吗?你知道吗


Tags: 方法divnp矩阵array向量矢量化公式