我想知道什么是矢量化以下公式的最佳方法:
c= Sum(u(i)*<u(i),y>/v(i) )
<.,.>
表示两个矩阵的点积。你知道吗
假设我们有一个矩阵K= U*Diag(w)*U^-1
(w
和u
是大小为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)
但事实上我。所以呢有什么建议吗?你知道吗
您可以避免在某些广播中使用
np.tile
:相关问题 更多 >
编程相关推荐