如何在python中使用1函数并行化2 for循环
嗨,我有以下代码:如何在python中使用1函数并行化2 for循环,python,parallel-processing,Python,Parallel Processing,嗨,我有以下代码: import numpy as np from scipy import pi,sin,cos import matplotlib.pyplot as plt import math as m image = np.zeros(shape=(201,201)) a=4 b=3 pa = 45 def dE(i,j,a,b,PA,x0,y0): the = -PA+90.0 x=i - x0 y=j - y0 cos_a,sin_a=cos
import numpy as np
from scipy import pi,sin,cos
import matplotlib.pyplot as plt
import math as m
image = np.zeros(shape=(201,201))
a=4
b=3
pa = 45
def dE(i,j,a,b,PA,x0,y0):
the = -PA+90.0
x=i - x0
y=j - y0
cos_a,sin_a=cos(the*pi/180.0),sin(the*pi/180.0)
Xs = (x*cos_a - y*sin_a)**2.0
Ys = (x*sin_a + y*cos_a)**2.0
r = np.sqrt((Xs/a**2) + (Ys/b**2))
return r
for i in range(0,len(image)):
for j in range(0,len(image)):
image[j,i] = dE(i,j,a,b,pa,100.0,100.0)
plt.imshow(image)
plt.show()
如何将底部的两个for循环并行化?提前谢谢
我已经在上面添加了完整的代码。克里斯,干杯好的,谢谢你的意见,真的很有帮助
import numpy as np
from scipy import pi,sin,cos
import matplotlib.pyplot as plt
import math as m
image = np.zeros(shape=(201,201))
a=4
b=3
pa = 240
def dEllipse(x,y,a,b,PA):
the = -PA+90.0
cos_a,sin_a=cos(the*pi/180.0),sin(the*pi/180.0)
Xs = (x*cos_a - y*sin_a)**2.0
Ys = (x*sin_a + y*cos_a)**2.0
r = np.sqrt((Xs/a**2) + (Ys/b**2))
return r
x = np.arange(0-100.0, 201-100.0)
y = np.arange(0-100.0, 201-100.0)
xx, yy = np.meshgrid(x, y)
new_image= dEllipse(xx,yy,a,b,pa)
plt.imshow(new_image)
plt.show()
函数
dE
获取大量未使用的参数是否有原因?以及dE
中的x和y来自何处?抱歉,我在剪切代码x时删除了一些参数,y本质上是i和j,但乘以一个常数。而x0和y0修改了x和y,但很重要。如果您添加了步骤,请扩展代码,使其完整且有效。您的问题的最佳解决方案可能是利用numpy数组而不是使用多处理来完成所有计算。