您好,登錄后才能下訂單哦!
(&,|)和(and,or)是兩組比較相似的運算符,用在“與”/ “或”上,在用法上有些許區別。
(&,|)和(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 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]
參考解釋
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。