NumPy फ़ंक्शन np.std
वैकल्पिक पैरामीटर ddof
लेता है: "स्वतंत्रता की डेल्टा डिग्री"। डिफ़ॉल्ट रूप से, यह 0
है। यह 1
करने के लिए सेट MATLAB परिणाम प्राप्त करने के:
>>> np.std([1,3,4,6], ddof=1)
2.0816659994661326
थोड़ा और संदर्भ को जोड़ने के लिए विचरण (जो के मानक विचलन वर्गमूल है) की गणना में, हम आम तौर पर मान की संख्या से विभाजित हम की है।
लेकिन यदि हम बड़े वितरण से N
तत्वों का एक यादृच्छिक नमूना चुनते हैं और भिन्नता की गणना करते हैं, तो N
द्वारा विभाजन वास्तविक भिन्नता को कम करके आ सकता है। इसे ठीक करने के लिए, हम N
(आमतौर पर N-1
) से कम संख्या में विभाजित संख्या (the degrees of freedom) को विभाजित कर सकते हैं। ddof
पैरामीटर हम निर्दिष्ट राशि से विभाजक को बदल सकते हैं।
जब तक अन्यथा कहा, NumPy विचरण के लिए पक्षपाती आकलनकर्ता की गणना करेगा (ddof=0
, N
से विभाजित)। यह वही है जो आप चाहते हैं यदि आप पूरे वितरण के साथ काम कर रहे हैं (और मूल्यों का सबसेट नहीं है जिसे बड़े वितरण से यादृच्छिक रूप से चुना गया है)। यदि ddof
पैरामीटर दिया गया है, तो NumPy N - ddof
द्वारा विभाजित करता है।
MATLAB के std
का डिफ़ॉल्ट व्यवहार N-1
द्वारा विभाजित करके नमूना भिन्नता के पूर्वाग्रह को सही करना है। यह मानक विचलन में पूर्वाग्रह के कुछ (लेकिन संभवतः सभी नहीं) से छुटकारा पाता है। यदि आप बड़े वितरण के यादृच्छिक नमूने पर फ़ंक्शन का उपयोग कर रहे हैं तो यह वही हो सकता है जो आप चाहते हैं।
@hbaderts द्वारा अच्छा जवाब आगे गणितीय विवरण देता है।
स्रोत
2014-12-22 09:54:15
मैं इसे मैटलैब में जोड़ूंगा, 'std ([1 3 4 6], 1)' न्यूमपी के डिफ़ॉल्ट 'np.std ([1,3,4,6]) के बराबर है। यह सब Matlab और NumPy के लिए प्रलेखन में स्पष्ट रूप से समझाया गया है, इसलिए मैं दृढ़ता से अनुशंसा करता हूं कि ओपी भविष्य में उनको पढ़ना सुनिश्चित करे। – horchler