Python 中 (&,|)和(and,or)之間的區別
阿新 • • 發佈:2019-05-14
ima item 技術分享 技術 value columns 圖片 運算符 emp (&,|)和(and,or)是兩組比較相似的運算符,用在“與”/ “或”上,在用法上有些許區別。
(&,|)和(and,or)是用來比較兩組變量的,格式基本上是: 2 and 1 # 返回1
1 and 2 # 返回2 需要求得滿足多個邏輯條件的數據時,要使用& 和|,在某些條件下用and/ or會報錯‘ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().’
data.columns = [‘s_line‘, ‘s_wid‘, ‘p_line‘, ‘p_wid‘, ‘kind‘]
x_data = data.iloc[:, :-1]
(&,|)和(and,or)是用來比較兩組變量的,格式基本上是:
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
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的切片過程,要註意邏輯變量的使用,
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‘])
x_data = data.iloc[:, :-1]
在多個邏輯條件下,用& 或者|,
x_1 = x_data[x_data[‘s_line‘] > 6 & x_data[‘p_wid‘] > 0]
好了,本文就給大夥分享到這裏,文末分享一波福利
獲取方式:加python群 839383765 即可獲取!
Python 中 (&,|)和(and,or)之間的區別