"में" मैं अगर किसी ने मुझसे इस के साथ मदद कर सकता है (और समझा क्या हो रहा है) की सराहना करेंगे।Numpy: समझ के साथ होता है में एक हाथ की जरूरत ऑपरेटर
यह काम करता है:
>>> from numpy import array
>>> a = array((2, 1))
>>> b = array((3, 3))
>>> l = [a, b]
>>> a in l
True
लेकिन यह नहीं करता है:
>>> c = array((2, 1))
>>> c in l
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
व्यवहार मैं दोहराने के लिए चाहते हैं:
>>> x = (2, 1)
>>> y = (3, 3)
>>> l2 = [x, y]
>>> z = (2, 1)
>>> z in l2
True
ध्यान दें कि क्या इसके बाद के संस्करण भी परिवर्तनशील के साथ काम ऑब्जेक्ट्स:
>>> x = [2, 1]
>>> y = [3, 3]
>>> l2 = [x, y]
>>> z = [2, 1]
>>> z in l2
True
बेशक
, जानते हुए भी कि:
>>> (a < b).all()
True
मैंने कोशिश की (और असफल):
>>> (c in l).all()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
बहुत उपयोगी, धन्यवाद (+1) ... मुझे अभी भी नहीं मिल रहा है कि क्यों 'एल इन' को 'सी में एल' से अलग परिणाम मिलता है। दोनों स्थितियों में कमांड को एक मानक सूची में एक numpy सरणी का परीक्षण करना चाहिए ... अंतर क्या है जो मैं नहीं देख सकता? – mac
@mac: यह एक अच्छा सवाल है, और मुझे जवाब नहीं पता है। [दस्तावेज़ कहते हैं] (http://docs.python.org/reference/expressions.html#notin), "सूची और टुपल प्रकारों के लिए, वाई में वाई सच है अगर और केवल अगर कोई अनुक्रमणिका मौजूद है तो मैं x == वाई [i] सच है। ", लेकिन 'बूल (ए == एल [0])' एक ValueError उठाता है और फिर भी 'l में एक रिटर्न सही होता है। मुझे नहीं पता कि इस (प्रतीत होता है) विरोधाभास को कैसे हल किया जाए। – unutbu
और रहस्य में जोड़ने के लिए, 'बी में एल' एक ValueError उठाता है ... – unutbu