यदि आप के बारे में पूछ रहे हैं numpy.logical_or, तो नहीं, जैसा कि डॉक्स स्पष्ट रूप से कहते हैं, एकमात्र पैरामीटर हैं x1, x2, और वैकल्पिक रूप से out:
numpy.logical_or( x1, x2[, out]) =<ufunc 'logical_or'>
आप logical_orइस तरह से कई कॉल को एक साथ कर सकते हैं :
>>> x = np.array([True, True, False, False])
>>> y = np.array([True, False, True, False])
>>> z = np.array([False, False, False, False])
>>> np.logical_or(np.logical_or(x, y), z)
array([ True, True, True, False], dtype=bool)
NumPy में इस तरह की चेनिंग को सामान्य करने का तरीका reduceनिम्न है:
>>> np.logical_or.reduce((x, y, z))
array([ True, True, True, False], dtype=bool)
और निश्चित रूप से यह भी काम करेगा यदि आपके पास अलग-अलग सरणियों के बजाय एक बहु-आयामी सरणी है - वास्तव में, इसका मतलब यह है:
>>> xyz = np.array((x, y, z))
>>> xyz
array([[ True, True, False, False],
[ True, False, True, False],
[False, False, False, False]], dtype=bool)
>>> np.logical_or.reduce(xyz)
array([ True, True, True, False], dtype=bool)
लेकिन तीन समान लंबाई वाले 1D सरणियों का एक टप्पर NumPy शब्दों में एक array_like है, और इसे 2D सरणी के रूप में उपयोग किया जा सकता है।
न्यूमपी के बाहर, आप पायथन का उपयोग भी कर सकते हैं reduce:
>>> functools.reduce(np.logical_or, (x, y, z))
array([ True, True, True, False], dtype=bool)
हालांकि, NumPy के विपरीत reduce, पायथन की अक्सर जरूरत नहीं होती है। अधिकांश मामलों के लिए, चीजों को करने का एक सरल तरीका है - जैसे, कई पायथन orऑपरेटरों को एक साथ चेन करने के लिए, reduceखत्म न करें operator.or_, बस उपयोग करें any। और जब वहाँ नहीं है , यह आमतौर पर एक स्पष्ट लूप का उपयोग करने के लिए अधिक पठनीय है।
और वास्तव में NumPy का anyउपयोग इस मामले के लिए भी किया जा सकता है, हालांकि यह काफी तुच्छ नहीं है; यदि आप स्पष्ट रूप से इसे एक अक्ष नहीं देते हैं, तो आप एक सरणी के बजाय एक स्केलर के साथ समाप्त करेंगे। इसलिए:
>>> np.any((x, y, z), axis=0)
array([ True, True, True, False], dtype=bool)
जैसा कि आप उम्मीद कर सकते हैं, logical_andयह समान है - आप इसे स्पष्ट कर सकते हैं, np.reduceइसे, functools.reduceइसे, या विकल्प के allसाथ चेन कर सकते हैं axis।
अन्य कार्यों के बारे में क्या, जैसे logical_xor? फिर से, एक ही सौदा ... सिवाय इसके कि इस मामले में कोई all/ any-प्रकार फ़ंक्शन लागू नहीं होता है। (इसे आप क्या कहेंगे odd?)
any()?