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