(Python2)
我的for循环是这样的
vx2=[]
vy2=[]
vz2=[]
for xn in range(0,npoints-2):
vx11=vx1[xn]+.5*(fxxx_list[xn]+fxxx_list[xn+1])*dt
vy11=vy1[xn]+.5*(fxxx_list[xn]+fxxx_list[xn+1])*dt
vz11=vz1[xn]+.5*(fxxx_list[xn]+fxxx_list[xn+1])*dt
vx2.append(vx11)
vy2.append(vy11)
vz2.append(vz11)
print vx2, vy2, vz2
我的教授告诉我,我可以通过在Numpy数组上操作来替换for循环来加速这个过程,但是我发现在同一个Numpy函数中对非整数进行乘法和加法/乘法是低效的。有没有一种优雅的方法可以用Numpy而不是for循环来编写这个
我已经试过了:
#number of iterations
xn=n1[0:998]
array=np.array(xn)
vxn=vx1[0:998]
vyn=vy1[0:998]
vzn=vz1[0:998]
vvv=np.multiply((dt),(fxxx_list))
vx2=vxn+vvv
vy2=vyn+vvv
vz2=vzn+vvv
但我无法得到我的算法非常正确,正如你所看到的,它有点混乱,需要的时间和for循环一样长
试试这个:
如果阵列vx1,。。。也比你应该使用的长度n\u点
注:我假设vx1,。。。都是一样长的
相关问题 更多 >
编程相关推荐