अपवाद का कारण and
अंतर्निहित कॉल है bool
। पहले बाएं ऑपरेंड पर और (अगर बाएं ऑपरेंड है True
) तो राइट ऑपरेंड पर। तो x and y
के बराबर है bool(x) and bool(y)
।
हालाँकि एक bool
पर numpy.ndarray
(यदि इसमें एक से अधिक तत्व हैं) आपके द्वारा देखे गए अपवाद को फेंक देगा:
>>> import numpy as np
>>> arr = np.array([1, 2, 3])
>>> bool(arr)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
bool()
कॉल निहित में है and
, लेकिन यह भी में if
, while
, or
, तो निम्न उदाहरण में से किसी भी असफल हो जायेगी:
>>> arr and arr
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> if arr: pass
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> while arr: pass
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
>>> arr or arr
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
पायथन में अधिक फ़ंक्शन और कथन हैं जो bool
कॉल छिपाते हैं, उदाहरण के लिए 2 < x < 10
लेखन का एक और तरीका है 2 < x and x < 10
। और and
कॉल करेंगे bool
: bool(2 < x) and bool(x < 10)
।
इसके लिए तत्व-वार समतुल्य and
होगा np.logical_and
, इसी तरह आप इसके लिए np.logical_or
बराबर का उपयोग कर सकते हैं or
।
बूलियन सरणियों के लिए - और तुलना की तरह है <
, <=
, ==
, !=
, >=
और >
NumPy पर सरणियों बूलियन NumPy सरणी वापसी - आप भी उपयोग कर सकते हैं तत्व के लिहाज से बिटवाइज़ कार्य (और ऑपरेटरों): np.bitwise_and
( &
ऑपरेटर)
>>> np.logical_and(arr > 1, arr < 3)
array([False, True, False], dtype=bool)
>>> np.bitwise_and(arr > 1, arr < 3)
array([False, True, False], dtype=bool)
>>> (arr > 1) & (arr < 3)
array([False, True, False], dtype=bool)
और bitwise_or
( |
ऑपरेटर):
>>> np.logical_or(arr <= 1, arr >= 3)
array([ True, False, True], dtype=bool)
>>> np.bitwise_or(arr <= 1, arr >= 3)
array([ True, False, True], dtype=bool)
>>> (arr <= 1) | (arr >= 3)
array([ True, False, True], dtype=bool)
तार्किक और बाइनरी फ़ंक्शंस की एक पूरी सूची को NumPy प्रलेखन में पाया जा सकता है: