如何在numpy的矩阵向量中制作点积?

古尔扎尔

我有

a = np.ones((10, 4, 3))
b = np.ones((10, 3, 5))

而且我要

c = np.dot(a, b, axis=0)
assert c.shape == (10, 4, 5)

我该怎么做呢?

amzon-ex

据我了解,有10个a形状为4 x 3的矩阵和10b个形状为3 x 5的矩阵,并且您希望对两个集合中的对应矩阵进行(矩阵乘)乘运算。

如前所述,np.matmul(a, b)还是a @ b达到了这个目的。但是,如果操作不清楚,则可以查看一种明确的方法来实现所需的功能np.einsum,该方法可以像在数学中那样明确指定索引:

np.einsum('ijl,ilk->ijk', a, b)

第一个参数的字符串中,左侧指定输入矩阵的索引,右侧指定输出索引。阅读文档以更好地理解它。

只是为了检查结果是否相同:

>>> np.allclose(np.einsum('ijl,ilk->ijk', a, b), a @ b)

True

但是einsum需要更多时间,因此对于这种简单的用法,明智的做法是@

>>> %timeit np.einsum('ijl,ilk->ijk', a, b)
    %timeit a @ b

14.2 µs ± 176 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)
2.73 µs ± 22.9 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

希望这可以帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在C ++中做矩阵和向量之间的点积

来自分类Dev

矩阵和向量的点积

来自分类Dev

numpy点积和矩阵积

来自分类Dev

numpy点积和矩阵积

来自分类Dev

numpy中的矩阵和一维数组之间的点积

来自分类Dev

numpy中的矩阵和一维数组之间的点积

来自分类Dev

如何在Caffe的矩阵之间做点积?

来自分类Dev

矩阵和向量的 R 点积仅使用向量中的元素

来自分类Dev

为什么两个numpy(n,)向量的矩阵@乘积是点积,而不是外积?

来自分类Dev

通勤numpy稀疏矩阵点积

来自分类Dev

通勤numpy稀疏矩阵点积

来自分类Dev

Numpy:如何在张量上正确执行点积

来自分类Dev

如何用numpy计算向量和矩阵的“克罗内克积”

来自分类Dev

找到大向量矩阵的点积的最快方法

来自分类Dev

向量的点积

来自分类Dev

向量的Q点积

来自分类Dev

点积稀疏矩阵

来自分类Dev

如何在Python中制作矩阵?

来自分类Dev

如何在MATLAB中制作特定矩阵?

来自分类Dev

如何在Python中计算两个向量数组的点积?

来自分类Dev

numpy点积,但保持为向量(不添加元素)

来自分类Dev

没有张量点积的向量化numpy计算

来自分类Dev

带有自定义点积的numpy矩阵乘法

来自分类Dev

3D矩阵内部数组的Numpy计算点积

来自分类Dev

与邻接矩阵的乘法和点积(numpy)

来自分类Dev

查找numpy中每行的点积

来自分类Dev

如何在numpy中构造向量的所有可能差异的矩阵

来自分类Dev

如何从numpy中的两个向量中获得所有对的笛卡尔积?

来自分类Dev

如何在现有向量中的多个点插入向量?