我有两个numpy数组,a的大小(20*3*3)和b的大小(3*3)。设a=(a1,a2,…,a20)。我想按如下方式计算矩阵积元素: c=(c1,c2,…,c20),ci=b.Taib,i=1~20。 如何使用numpy高效地完成它?你知道吗
使用for循环的慢版本如下所示:
a = np.random.sample((20, 3, 3))
b = np.random.sample((3, 3))
c = np.zeros_like(a)
for i0, ai in enumerate(a):
c[i0] = np.dot(b.T, np.dot(ai, b))
你可以试试
np.matmul(b.T, np.dot(a,b))
:你可以把你的操作放到一个向量化的形式,因为你的输入是NumPy数组。不需要显式的
for
循环和索引。你知道吗附言:多亏@yatu发现答案不一样。现在我添加了
swapaxes
以获得一致的答案作为OP的方法相关问题 更多 >
编程相关推荐