python - Using numpy to find the number of non-zero values in an array -


इस सवाल का पहले से ही एक उत्तर है: < / P>

  • 2 जवाब

    मुझे अक्सर खोजने की आवश्यकता है मूल्यों की एक बड़ी 1D सरणी के लिए कुछ शर्त संतोषजनक मानों की संख्या थोड़ा परीक्षण और त्रुटि के माध्यम से मुझे निम्न विधि के साथ समाप्त हुआ:

      आयात करें np के रूप में np a = np.random.random_sample (500000) # बस कुछ परीक्षण डेटा num_above_half = len (np.nonzero (एक & gt; 0.5) [0])   

    एक समान विधि:

      num_above_half = sum (a & gt; 0.5)   

    मेरे मशीन पर लगभग 300 एक्स धीमी है पहली विधि ठीक है, लेकिन वाक्यविन्यास थोड़ा गंदा है, क्या ऐसा करने का एक बेहतर तरीका है?

    < पी> एक निश्चित स्थिति को गिनने के लिए अलग-अलग तरीके से बेंचमार्किंग से पता चलता है कि np.count_nonzero सबसे तेज़ है।
      में [2]:% timeit len ​​(np.nonzero (एक & gt; 0.5) [0]) 100 loops, 3: 2.24 एमएस प्रति लूप में सर्वश्रेष्ठ [3]:% timeit राशि (ए और 0.5; 1) 1 छोरों, सबसे अच्छा 3: 1.23 एस प्रति लूप [4] :% Timeit (a & gt; 0.5) .sum () 1000 छोरों, लूप प्रति 3: 906 μμ के सर्वश्रेष्ठ [5]:% timeit np.count_nonzero (a & gt; 0.5) 1000 loops, सर्वोत्तम 3: 266 μm प्रति लूप    

Comments

Popular posts from this blog

Out of index C/C++ -

regex - PatternSyntaxException: while using String.ReplaceAll function in java? -

objective c - how Set autolayout for multiple dynamic buttons and labells in iOS? -