Tuesday, 15 September 2015

python - Mask a 2D Numpy Array by array of indexes like np.in1d for 2d arrays -


  एनपी.रेरे ([[0, 13,0,2,0,0,0,0,0,0,0 , 0,0,0], [0,0,15,0 9,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,18,0,0 , 0,0,0,0], [0,0,0,0,27,0,20,0,0,0,0,0,0], [0,0,0,0,0,20,0 , 10,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0 , 0,14,0,14,0,0], [0,0,0,0,0,0,0,0,0,12,0,25,0], [0,0,0,0,0,0 , 0,0,0,0,0,0,0,11], [0,0,0,0,0,0,0,0,0,0,0,15,0], [0,0,0,0 , 0,0,0,0,0,0,0,0,7], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]  < / Pre> 

मैं कैसे ऊपर की तरह एक numpy सरणी लेने के लिए कोशिश कर रहा हूँ और फिर एक performant ऑपरेशन में यह तत्वों के अनुक्रमित के साथ यह मुखौटा नकाब करना चाहते हैं

[0,1] [1,4 ] [4,7] [7,8] [8,11]

तो जो कुछ मैं साथ रहा हूँ

  np.array ([[0,0, 0,2,0,0,0,0,0,0,0,0,0,0], [0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0], [0, 0,0,0,0,18,0,0,0,0,0,0,0,0], [0,0,0,0,27,0,20,0,0,0,0,0,0], [ 0,0,0,0,0,20,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,8,0,0,0,0,0] , [0,0,0,0,0,0,0,14,0,14,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,25,25, 0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 15,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,7 , [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]  

np.in1d ​​की कार्यक्षमता की तरह कुछ लेकिन 2 डी सरणी? मैं प्रत्येक तत्व पर पुनरावृत्त कर सकता हूं लेकिन सरणियों को बहुत बड़ा हो सकता है, इसलिए वेक्टर एकल ऑपरेशन मुखौटा सबसे अच्छा होगा। क्या यह संभव है? अगर यह एक बेवकूफ सवाल है तो मुझे यकीन है कि मुझे बताया जाएगा!

आप इन तक सीधे पहुंच सकते हैं अनुक्रमित निम्न तरीकों से

  अनुक्रमणिका = [[0,1], [1,4], [4,7], [7,8], [8,11]] अनुक्रमणिका = ज़िप (* इंडेक्स) & gt; & gt; [(0, 1, 4, 7, 8), (1, 4, 7, 8, 11)] एक [अनुक्रमणिका [0], अनुक्रमित [1]] = 0 & gt; & gt; [0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 18 0 0 0 0 0 0] [0 0 0 0 27 0 20 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 14 14 14 0 0] [ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7] [0 0 0 0 0 0 0 0 0 0 0]]  

No comments:

Post a Comment