मैं दो numpy arrays के बीच एक सममित अंतर करने के लिए पायथन में एक सेट ऑपरेशन का उपयोग कर रहा हूँ। नतीजा, हालांकि, एक सेट है और मुझे आगे बढ़ने के लिए इसे वापस एक numpy सरणी में बदलने की जरूरत है। क्या इसे करने का कोई तरीका है? यहाँ मैं क्या करने की कोशिश की है:एक पायथन सेट को एक numpy सरणी में कैसे परिवर्तित करें?
a = numpy.array([1,2,3,4,5,6])
b = numpy.array([2,3,5])
c = set(a)^set(b)
परिणाम एक सेट है:
In [27]: c
Out[27]: set([1, 4, 6])
अगर मैं एक numpy सरणी में बदलने का, यह पहली सरणी तत्व में पूरे सेट देता है।
In [28]: numpy.array(c)
Out[28]: array(set([1, 4, 6]), dtype=object)
मैं क्या जरूरत है, हालांकि, इस होगा:
array([1,4,6],dtype=int)
मैं तत्वों से अधिक पाश एक के बाद एक कन्वर्ट करने के लिए कर सकता है, लेकिन मैं 100,000 तत्वों है और एक में निर्मित समारोह के लिए आशा व्यक्त की होगी लूप को बचाने के लिए। धन्यवाद!
'setxor1d' जैसे numpy set routines का उपयोग कर रहा है, जब तुलना की संख्या बड़ी है? शायद एक नया सवाल है, लेकिन मुझे लगता है कि इस जवाब से बहुत संबंधित है। मेरे मामले में मेरे पास 10 मीटर + सेट ऑपरेशंस के साथ 100k ऑब्जेक्ट्स होंगे। – Annan