为什么当我尝试在 1 个函数中练习 1 个条件时它有效,但当我尝试添加下一个时 - 它只给出黑色光栅?
而不是平均 > 0.05*99 - 我尝试做: (平均值 > 0.05*99)&(平均值 < 0.20*99) (条件:大于5%但小于20%)。
Python 规则编写多个条件可能有问题吗?
def computeThirdCondition(myArray):
print "Executing Third Condition:"
#Set up empty array:
myArrayThird = numpy.zeros(myArray.shape).astype(float)
thirdCondition = (theInputArray==11)|(theInputArray==12)*1
for i in range (1,numpy.size(myArray,1)-1):
for j in range (1,numpy.size(myArray,0)-1):
average = 0.0
for ii in range(i-6,i+7):
for jj in range(j-4,j+5):
average = average + thirdCondition[j][i]
if (average > 0.05*99)&(average < 0.20*99):
myArrayThird[j][i] = 1
return myArrayThird
最佳答案
在Python中,&
是按位and
运算符,而逻辑and
只是and
。更改您的线路
if (average > 0.05*99)&(average < 0.20*99):
至:
if average > 0.05 * 99 and average < 0.20 * 99:
甚至:
if 0.20 * 99 > average > 0.05 * 99:
关于python - 为什么当我尝试在 1 个函数中执行 2 个条件时,它只给出黑色光栅?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36076241/