使用数组的前一个结果将许多二维数组乘以向量
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])
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])