我尝试用numpy优化一些代码。目前我有以下代码:
for i in range(0,bodies):
delta_y = b@(k[:,i,:])
delta_y *= dx
y[i] += delta_y
return y
其中B的形状为(5,),k的形状为(5,3,4),有没有办法用numpy乘法代替for循环,我已经尝试了很多方法,但都不能解决这个问题。
目前我正在尝试:
B = np.repeat([b], y.shape[0], axis = 0)
delta_y= B.T@k
delta_y*= dx
y = delta_y
得到的是(5,5,4)形而不是(4,)形。
1条答案
按热度按时间bvuwiixz1#
多亏了Hpaulj,我想出了一个解决办法:
以防将来有人能用:)