Python 中 (&,|)和(and,or)之间的区别是什么
&,|)和(and,or)是2组较为类似的操作符,用在“与”/ “或”上,在使用方法上面有一丝差别。
(&,|)和(and,or)是用于较为2组自变量的,文件格式通常是:
a & b a | b a and b a or b
如果a,b是标值自变量, 则&, |表明位运算, and,or则根据是不是非0来决策輸出,
&, |: # 1&2,2在二进制里边是10,1在二进制中是01,那麼01与运算10获得是0 1 & 2 # 輸出为 0 1 | 2 # 輸出为3
and, or:
# 分辨自变量是不是为0, 是0则为False,非0分辨为True, # and中含0,回到0; 均为非0时,回到后一个值, 2 and 0 # 回到0 2 and 1 # 回到1 1 and 2 # 回到2 # or中, 最少有一个非0时,回到**个非0, 2 or 0# 回到2 2 or 1 # 回到2 0 or 1 # 回到1
怎样a, b是逻辑性自变量, 则两大类的使用方法基本一致
In[103]:(3>0) | (3<1) Out[103]: True In[104]:(3>0) and (3<1) Out[104]: False In[105]:(3>0) or (3<1) Out[105]: True In[106]:(3>0) & (3<1) Out[106]: False
非常值得提到的是在DataFrame的切成片全过程,要留意逻辑性自变量的应用
*须 求取达到好几个逻辑性标准的资料时,要应用& 和|,在一些标准下要and/ or会出错
‘ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().’ target_url = http://aima.cs.berkeley.edu/data/iris.csv data = pd.read_csv(target_url, header=None, columns=['s_line', 's_wid', 'p_line', 'p_wid', 'kind']) data.columns = ['s_line', 's_wid', 'p_line', 'p_wid', 'kind'] x_data = data.iloc[:, :-1] # 在好几个逻辑性标准下,用& 或是|,x_1 = x_data[x_data['s_line'] > 6 & x_data['p_wid'] > 0]