【发布时间】:2016-03-09 14:40:10
【问题描述】:
我有一个形状为 (n,3) 的行向量的 numpy 数组和另一个形状为 (n,3,3) 的矩阵的 numpy 数组。我想将 n 个向量中的每一个与相应的矩阵相乘,并返回结果向量的形状为 (n,3) 的数组。
到目前为止,我一直在使用 for 循环遍历 n 个向量/矩阵并逐项进行乘法运算。
我想知道是否有更 numpy-ish 的方式来做到这一点。一种没有 for 循环甚至可能更快的方法。
//编辑1:
根据要求,这是我的循环代码(带有n = 10):
arr_in = np.random.randn(10, 3)
matrices = np.random.randn(10, 3, 3)
for i in range(arr_in.shape[0]): # 10 iterations
arr_out[i] = np.asarray(np.dot(arr_in[i], matrices[i]))
【问题讨论】:
-
分享你的循环代码?
-
我会的,等一下……
-
使用编辑后的代码,输出似乎是
(n,3,3)而不是(n,3). -
嗯,是的,我明白了……等一下……我会更正代码。奇怪的是:这个简化的示例完全按照预期在开发环境中工作。
标签: python arrays numpy matrix