我有一个 3 维数据集,我试图通过以下方式操作。
data.shape = (643, 2890, 10)
vector.shape = (643,)
我希望 numpy 将数据视为 2890x10 矩阵的 643 长度一维数组,并计算数据和向量之间的点积(和积?)。我可以通过循环来做到这一点,但真的很想找到一种使用原语来做到这一点的方法(这将在并行节点上运行多次)。
等效循环(我相信):
a = numpy.zeros ((2890, 10))
for i in range (643):
a += vector[i]*data[i]
非常感谢!对不起,如果这是一个转发,我已经搜索了很多地方,最后创建了一个帐户来问你们。
a = numpy.array ([[[1,1,1,1],[2,2,2,2],[3,3,3,3]], [[3,3,3,3],[4,4,4,4],[5,5,5,5]]])
b = numpy.array ([10,20])
# Thus,
a.shape = (2,3,4)
b.shape = (2,)
# Want an operation . such that:
a . b = [[10,10,10,10],[20,20,20,20],[30,30,30,30]] + [[60,60,60,60],[80,80,80,80],[100,100,100,100]]
= [[70,70,70,70],[100,100,100,100],[130,130,130,130]]