NumPy 1.14 - numpy.nanpercentile()

numpy.nanpercentile




numpy

numpy.nanpercentile

numpy.nanpercentile(a, q, axis=None, out=None, overwrite_input=False, interpolation='linear', keepdims=<class 'numpy._globals._NoValue'>) [source]

नैन मानों को अनदेखा करते हुए, निर्दिष्ट अक्ष के साथ डेटा के qth प्रतिशतक की गणना करें।

सरणी तत्वों के qth प्रतिशतक (ओं) को लौटाता है।

संस्करण 1.9.0 में नया।

पैरामीटर:

a : array_like

इनपुट सरणी या ऑब्जेक्ट जिसे एक सरणी में परिवर्तित किया जा सकता है।

q : [०,१००] की सीमा में फ्लोट (या फ़्लोट्स का क्रम)

गणना करने के लिए प्रतिशत, जो 0 से 100 के बीच होना चाहिए।

अक्ष : {int, int का क्रम, कोई नहीं}, वैकल्पिक

धुरी या कुल्हाड़ी जिसके साथ प्रतिशतक की गणना की जाती है। डिफ़ॉल्ट सरणी के एक चपटा संस्करण के साथ प्रतिशतक (ओं) की गणना करना है। कुल्हाड़ियों का एक अनुक्रम संस्करण 1.9.0 के बाद से समर्थित है।

बाहर : ndarray, वैकल्पिक

वैकल्पिक आउटपुट ऐरे जिसमें रिजल्ट रखना है। इसमें अपेक्षित आउटपुट के समान आकार और बफर की लंबाई होनी चाहिए, लेकिन यदि आवश्यक हो तो प्रकार (आउटपुट का) डाला जाएगा।

overwrite_input : बूल, वैकल्पिक

यदि सही है, तो गणना के लिए इनपुट सरणी की मेमोरी का उपयोग करने की अनुमति दें। इनपुट एरे को कॉल द्वारा percentile । यह मेमोरी को बचाएगा जब आपको इनपुट ऐरे की सामग्री को संरक्षित करने की आवश्यकता नहीं है। इस मामले में आपको इनपुट की सामग्री के बारे में कोई भी अनुमान नहीं लगाना चाहिए कि यह कार्य पूरा होने के बाद - इसे अपरिभाषित मानें। डिफ़ॉल्ट गलत है। यदि पहले से कोई सरणी नहीं है, तो इस पैरामीटर का कोई प्रभाव नहीं पड़ेगा क्योंकि इस पैरामीटर के मान की परवाह किए बिना आंतरिक रूप से एक सरणी में परिवर्तित किया जाएगा।

प्रक्षेप : {'रैखिक', 'निचला', 'उच्च', 'मध्य बिंदु', 'निकटतम'}

यह वैकल्पिक मापदण्ड इंटरपोलेशन विधि का उपयोग करने के लिए निर्दिष्ट करता है, जब वांछित मात्रा दो डेटा बिंदुओं के बीच निहित होती है i < j :

  • रैखिक: i + (j - i) * fraction , जहां fraction i और j घिरा सूचकांक का भिन्नात्मक भाग है।
  • निचला: i
  • उच्चतर: j
  • निकटतम: i या j , जो भी निकटतम है।
  • midpoint: (i + j) / 2

रखवाले : बूल, वैकल्पिक

यदि इसे True पर सेट किया जाता है, तो जो कुल्हाड़ियों को कम किया जाता है, उन्हें परिणाम में एक आकार के साथ आयाम के रूप में छोड़ दिया जाता है। इस विकल्प के साथ, परिणाम मूल सरणी a खिलाफ सही ढंग से प्रसारित होगा।

यदि यह कुछ भी है, लेकिन डिफ़ॉल्ट मान इसे अंतर्निहित सरणी के mean फ़ंक्शन के माध्यम से (खाली सरणी के विशेष मामले में) पारित किया जाएगा। यदि सरणी एक उप-वर्ग है और mean यह नहीं है कि यह kwarg keepdims नहीं है तो यह एक RuntimeError keepdims

यह दिखाता है:

प्रतिशतक : स्केलर या ndarray

यदि q एकल प्रतिशतक और axis=None , तो परिणाम एक अदिश राशि है। यदि कई प्रतिशत दिए जाते हैं, तो परिणाम का पहला अक्ष प्रतिशत से मेल खाता है। अन्य कुल्हाड़ियों वे कुल्हाड़ियां हैं जो a की कमी के बाद बनी हुई हैं। यदि इनपुट में पूर्णांक शामिल है या फ्लोट float64 से छोटा है, तो आउटपुट डेटा-टाइप float64 । अन्यथा, आउटपुट डेटा-प्रकार इनपुट के समान है। यदि निर्दिष्ट किया गया है, तो इसके बजाय सरणी दी गई है।

यह भी देखें

nanmean , nanmedian , percentile , median , mean

टिप्पणियाँ

लंबाई N सदिश V को देखते हुए, V की छांट प्रति में न्यूनतम से अधिकतम तक के रास्ते का मान q/100 प्रतिशत है। सामान्य निकटतम रैंकिंग q के स्थान से मेल नहीं खाती है, तो दो निकटतम पड़ोसियों के मूल्यों और दूरी के साथ-साथ interpolation पैरामीटर भी प्रतिशत का निर्धारण करेगा। यह फ़ंक्शन माध्यिका के समान है यदि q=50 , न्यूनतम के समान है यदि q=0 और अधिकतम के समान है यदि q=100

उदाहरण

>>> a = np.array([[10., 7., 4.], [3., 2., 1.]])
>>> a[0][1] = np.nan
>>> a
array([[ 10.,  nan,   4.],
      [  3.,   2.,   1.]])
>>> np.percentile(a, 50)
nan
>>> np.nanpercentile(a, 50)
3.5
>>> np.nanpercentile(a, 50, axis=0)
array([ 6.5,  2.,   2.5])
>>> np.nanpercentile(a, 50, axis=1, keepdims=True)
array([[ 7.],
       [ 2.]])
>>> m = np.nanpercentile(a, 50, axis=0)
>>> out = np.zeros_like(m)
>>> np.nanpercentile(a, 50, axis=0, out=out)
array([ 6.5,  2.,   2.5])
>>> m
array([ 6.5,  2. ,  2.5])
>>> b = a.copy()
>>> np.nanpercentile(b, 50, axis=1, overwrite_input=True)
array([  7.,  2.])
>>> assert not np.all(a==b)