当我执行np.where(temp == True)
时,PyCharm会发出警告我的完整代码:
from numpy import where, array
a = array([[0.4682], [0.5318]])
b = array([[0.29828851, 0., 0.28676873, 0., 0., 0., 0., 0.28801431, 0., 0., 0.71283046, 0.],
[0.70171149, 0., 0.71323127, 0., 0., 0., 0., 0.71198569, 0., 0., 0.28716954, 0.]])
temp = b > 1.1*a
pos = where(temp == True)
print(pos)
如果我将temp == True更改为temp,则代码无法按预期工作,如其他帖子所示。
该警告应如何解决?
其中(temp)有效。非常感谢 !! @Joao Vitorino 谢谢你的解释,@ jedwards。它有助于。
答案 0 :(得分:2)
不要将布尔值与布尔值进行比较。
您应该检查是真还是假。
b == true
if b: # If b is True
do something
在你的情况下
temp = b > 1.1*a
pos = where(temp)
Here一些解释
答案 1 :(得分:0)
根据Python中的PEP8指南,将事物与True进行比较不是首选模式。
temp = True
pcos = where(temp)
如果将'temp'分配为false,则在条件语句中仅指定'temp'的结果为True。例如:
temp = False
pros = while(temp) # if or while condition
注意:如果您的代码未遵循PEP8,这种情况将不会出现任何错误。