python - 为什么当我尝试在 1 个函数中执行 2 个条件时,它只给出黑色光栅?

标签 python numpy raster

为什么当我尝试在 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/

相关文章:

python - numbapro 中的 cuda 代码错误

删除 SpatialPointsDataFrame 中的第三个维度

python - 数独混淆 python -> perl 翻译

python - 如何仅使用 numpy(而不是 sklearn LabelEncoder)创建标签编码器?

带有 celery 的 Python Flask 在应用程序上下文之外

python - 如何将函数应用于 Python pandas 中的分组数据框?

r - 神秘的多边形问题导致错误的光栅化

r - 堆叠后如何编写栅格?

python 请求随机中断 JSONDecodeError

python - 每行在 pandas 数据框中具有值的前 k 列