Python 我的函数适用于标量,但不适用于数组。我能做些什么来克服这个问题? def扩散率(z): a=1 如果(0
你必须改变一下你的思维方式:Python 我的函数适用于标量,但不适用于数组。我能做些什么来克服这个问题? def扩散率(z): a=1 如果(0,python,numpy,Python,Numpy,你必须改变一下你的思维方式: def diffusitivity(z): a=1 if (0<=z and z<1.0/2.0): temp=2*(1+a)*(1+2*a)/(a^2)*z*((1-2*z)**(1/a)) return temp elif (1/2<=z and z<=1): temp=2*(1+a)*(1+2*a)/(a^2)*(1-z)*((2*z-1)**(1/a))
def diffusitivity(z):
a=1
if (0<=z and z<1.0/2.0):
temp=2*(1+a)*(1+2*a)/(a^2)*z*((1-2*z)**(1/a))
return temp
elif (1/2<=z and z<=1):
temp=2*(1+a)*(1+2*a)/(a^2)*(1-z)*((2*z-1)**(1/a))
return temp
else:
return 0
d=numpy.zero_like(z)
m=z>=0
m&=z<0.5
d[m]=-24*z[m]**2+12*z[m]
m=z>=0.5
你必须改变一下你的思维方式:
def diffusitivity(z):
a=1
if (0<=z and z<1.0/2.0):
temp=2*(1+a)*(1+2*a)/(a^2)*z*((1-2*z)**(1/a))
return temp
elif (1/2<=z and z<=1):
temp=2*(1+a)*(1+2*a)/(a^2)*(1-z)*((2*z-1)**(1/a))
return temp
else:
return 0
d=numpy.zero_like(z)
m=z>=0
m&=z<0.5
d[m]=-24*z[m]**2+12*z[m]
m=z>=0.5
m&=z什么不起作用?显示一个不起作用的可测试示例,并显示错误语句(0请注意,^不是**最有可能得到的是关于不明确布尔值的valueerror。pythonif
不适用于数组。它只分支一次,没有任何形式的迭代。什么不起作用?显示一个不起作用的可测试示例,并显示错误语句(0请注意,^不是**最有可能得到的是关于不明确布尔值的valueerror。pythonif
不适用于数组。它只分支一次,没有任何形式的迭代。