我正在将一些matlab代码转换为python,并想知道迭代几个numpy数组的最佳方法。我在下面列出了我的解决方案,但想听听关于如何改进它的建议?感谢
Matlab——
for i = 1:3
for j = 1:3
pT(i) = dC(i,j)*p(j) + pT(i);
end
end
Python——
for i in range(0,3):
for j in range(0,3):
pT[0][i] = np.dot(dC[i][j],p[0][j]) + pT[0][i]
dC
是3x3阵列,p
和pT
是1x3阵列。
这只是p @ dC.transpose() + pT
,实际上并不需要循环。
import numpy as np
pT = np.array([1, 2, 3])
p = np.array([4, 5, 6])
dC = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
pT = p @ dC.transpose() + pT # [ 33 79 125]