NumPy फ़ंक्शन np.std
एक वैकल्पिक पैरामीटर लेता है ddof
: "डेल्टा डिग्री ऑफ़ फ़्रीडम"। डिफ़ॉल्ट रूप से, यह है 0
। 1
MATLAB परिणाम प्राप्त करने के लिए इसे सेट करें :
>>> 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 के लिए प्रलेखन में स्पष्ट रूप से समझाया गया है, इसलिए मैं दृढ़ता से अनुशंसा करता हूं कि ओपी भविष्य में उन लोगों को पढ़ना सुनिश्चित करें।