但如果我遵循这个PEP8,我会得到不同/错误的结果.为什么?
In [1]: from pylab import *In [2]: a = array([True,True,False])In [3]: where(a == True)Out[3]: (array([0,1]),)# correct results with PEP violationIn [4]: where(a is True)Out[4]: (array([],dtype=int64),)# wrong results without PEP violationIn [5]: where(a)Out[5]: (array([0,)# correct results without PEP violation,but not as clear as the first two imho. "Where what?"解决方法 该建议仅适用于测试值的“真实性”的if语句. numpy是一个不同的野兽.
>>> a = np.array([True,False]) >>> a == Truearray([ True,False],dtype=bool)>>> a is TrueFalse
注意a是True始终为False,因为a是一个数组,而不是布尔值,并且是一个简单的引用相等性测试(因此只有True是True;例如,None不是True).
总结以上是内存溢出为你收集整理的python – 与布尔numpy数组VS PEP8 E712的比较全部内容,希望文章能够帮你解决python – 与布尔numpy数组VS PEP8 E712的比较所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)