使用数组的前一个结果将许多二维数组乘以向量

multiply many 2d arrays by vector using the previous result of the array

a = np.array([0, 0, 1000])

b = np.array([[0.1,0.5,0.4],[0.2,0,0.8],[0.1,0.2,0.7]])

c= np.array([[0,0.5,0.5],[0.3,0,0.7],[0.1,0.4,0.5]])

d= np.array([[0.3,0.5,0.2],[0.4,0.3,0.3],[0.1,0.3,0.6]])

我有这个向量 (a),我需要将其乘以许多二维数组 (b,c,d)。我如何编写一个循环,它接受 a 并乘以 b,然后使用结果乘以 c,然后使用该结果乘以 d。

我目前正在这样做

result=np.dot(a,b)

result2=np.dot(result,c)

result3=np.dot(result2,d)

但我需要能够遍历所有内容,因为我有很多向量和矩阵。

**edit np.linalg.multi_dot 适用于这种情况,但我需要像这样获取每个数组的输出

array([130., 330., 540.])
array([225., 326., 449.])```

您可以使用multi_dot函数:

np.linalg.multi_dot([a, b, c, d])