numpy - numpy 点积的爱因斯坦符号
问题描述
如何使用爱因斯坦符号编写以下点积?
import numpy as np
LHS = np.ones((5,20,2))
RHS = np.ones((20,2))
np.sum([
np.dot(LHS[:,:,0], RHS[:,0]),
np.dot(LHS[:,:,1], RHS[:,1]),
], axis=0)
解决方案
那将是——
np.einsum('ijk,jk->i',LHS,RHS)
或者tensordot
-
np.tensordot(LHS,RHS,axes=((1,2),(0,1)))
并与np.dot
-
LHS.reshape(LHS.shape[0],-1).dot(RHS.ravel())
推荐阅读
- python - LXML 是否有可能检测到一个类在 HTML 中的价值?
- sql - SQL:从最大值更新最小值
- android - 无法使小部件可滚动
- c++ - 准备两个具有相同 SSL_CTX 状态的应用程序数据
- python - c++代码和python代码读取/dev/fb0 linux ubuntu16.4的区别
- indexing - 无法在 cassandra 表上为 Azure ACS 中的 lucene 搜索创建自定义索引
- datatable - 数据表过滤器未重绘表格
- gcc - push ebp:“push”的操作数类型不匹配
- html - 使用 Swift 4 滚动 WKWebview
- xcode - Xcode 中的拖放窗口