uTools-Manuals/docs/python/statistics.html
2019-04-21 11:50:48 +08:00

67 lines
40 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="body" role="main"><div class="section" id="module-statistics"><h1><span class="yiyi-st" id="yiyi-10">9.7. <a class="reference internal" href="#module-statistics" title="statistics: mathematical statistics functions"><code class="xref py py-mod docutils literal"><span class="pre">statistics</span></code></a> - 数学统计函数</span></h1><div class="versionadded"><p><span class="yiyi-st" id="yiyi-11"><span class="versionmodified">版本3.4中的新功能。</span></span></p></div><p><span class="yiyi-st" id="yiyi-12"><strong>源代码:</strong> <a class="reference external" href="https://hg.python.org/cpython/file/3.5/Lib/statistics.py">Lib / statistics.py</a></span></p><p><span class="yiyi-st" id="yiyi-13">此模块提供用于计算数字(<code class="xref py py-class docutils literal"><span class="pre">Real</span></code>值)数据的数学统计的功能。</span></p><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-14">注意</span></p><p class="last"><span class="yiyi-st" id="yiyi-15">除非另有说明,否则这些函数支持<a class="reference internal" href="functions.html#int" title="int"><code class="xref py py-class docutils literal"><span class="pre">int</span></code></a><a class="reference internal" href="functions.html#float" title="float"><code class="xref py py-class docutils literal"><span class="pre">float</span></code></a><a class="reference internal" href="decimal.html#decimal.Decimal" title="decimal.Decimal"><code class="xref py py-class docutils literal"><span class="pre">decimal.Decimal</span></code></a><a class="reference internal" href="fractions.html#fractions.Fraction" title="fractions.Fraction"><code class="xref py py-class docutils literal"><span class="pre">fractions.Fraction</span></code></a></span><span class="yiyi-st" id="yiyi-16">目前不支持其他类型的行为(无论是否在数字塔中)。</span><span class="yiyi-st" id="yiyi-17">混合类型也是未定义的和实现依赖的。</span><span class="yiyi-st" id="yiyi-18">如果您的输入数据由混合类型组成,您可以使用<a class="reference internal" href="functions.html#map" title="map"><code class="xref py py-func docutils literal"><span class="pre">map()</span></code></a>确保一致的结果,例如</span><span class="yiyi-st" id="yiyi-19"><code class="docutils literal"><span class="pre">mapfloat</span> <span class="pre">input_data</span></code></span></p></div><div class="section" id="averages-and-measures-of-central-location"><h2><span class="yiyi-st" id="yiyi-20">9.7.1.</span><span class="yiyi-st" id="yiyi-21">中心位置的平均值和度量</span></h2><p><span class="yiyi-st" id="yiyi-22">这些函数从总体或样本计算平均值或典型值。</span></p><table border="1" class="docutils"><tbody valign="top"><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-23"><a class="reference internal" href="#statistics.mean" title="statistics.mean"><code class="xref py py-func docutils literal"><span class="pre">mean()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-24">数据的算术平均值(“平均”)。</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-25"><a class="reference internal" href="#statistics.median" title="statistics.median"><code class="xref py py-func docutils literal"><span class="pre">median()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-26">数据的中位数(中间值)。</span></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-27"><a class="reference internal" href="#statistics.median_low" title="statistics.median_low"><code class="xref py py-func docutils literal"><span class="pre">median_low()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-28">数据的中位数低。</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-29"><a class="reference internal" href="#statistics.median_high" title="statistics.median_high"><code class="xref py py-func docutils literal"><span class="pre">median_high()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-30">数据的中位数高。</span></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-31"><a class="reference internal" href="#statistics.median_grouped" title="statistics.median_grouped"><code class="xref py py-func docutils literal"><span class="pre">median_grouped()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-32">分组数据的中位数或第50个百分位数。</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-33"><a class="reference internal" href="#statistics.mode" title="statistics.mode"><code class="xref py py-func docutils literal"><span class="pre">mode()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-34">离散数据的模式(最常见值)。</span></td></tr></tbody></table></div><div class="section" id="measures-of-spread"><h2><span class="yiyi-st" id="yiyi-35">9.7.2.</span><span class="yiyi-st" id="yiyi-36">扩展度量</span></h2><p><span class="yiyi-st" id="yiyi-37">这些函数计算总体或样本趋向于偏离典型值或平均值多少的量度。</span></p><table border="1" class="docutils"><tbody valign="top"><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-38"><a class="reference internal" href="#statistics.pstdev" title="statistics.pstdev"><code class="xref py py-func docutils literal"><span class="pre">pstdev()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-39">数据的总体标准偏差。</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-40"><a class="reference internal" href="#statistics.pvariance" title="statistics.pvariance"><code class="xref py py-func docutils literal"><span class="pre">pvariance()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-41">数据的人口方差。</span></td></tr><tr class="row-odd"><td><span class="yiyi-st" id="yiyi-42"><a class="reference internal" href="#statistics.stdev" title="statistics.stdev"><code class="xref py py-func docutils literal"><span class="pre">stdev()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-43">数据的样本标准偏差。</span></td></tr><tr class="row-even"><td><span class="yiyi-st" id="yiyi-44"><a class="reference internal" href="#statistics.variance" title="statistics.variance"><code class="xref py py-func docutils literal"><span class="pre">variance()</span></code></a></span></td><td><span class="yiyi-st" id="yiyi-45">数据的样本方差。</span></td></tr></tbody></table></div><div class="section" id="function-details"><h2><span class="yiyi-st" id="yiyi-46">9.7.3。</span><span class="yiyi-st" id="yiyi-47">函数详细信息</span></h2><p><span class="yiyi-st" id="yiyi-48">注意:这些函数不需要对它们提供的数据进行排序。</span><span class="yiyi-st" id="yiyi-49">然而,为了阅读方便,大多数实施例显示排序的序列。</span></p><dl class="function"><dt id="statistics.mean"><span class="yiyi-st" id="yiyi-50"><code class="descclassname">statistics.</code><code class="descname">mean</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-51">返回<em>数据</em>的样本算术平均值,实数值的序列或迭代器。</span></p><p><span class="yiyi-st" id="yiyi-52">算术平均值是数据的总和除以数据点的数量。</span><span class="yiyi-st" id="yiyi-53">它通常被称为“平均值”,虽然它只是许多不同数学平均值中的一个。</span><span class="yiyi-st" id="yiyi-54">它是数据的中心位置的度量。</span></p><p><span class="yiyi-st" id="yiyi-55">如果<em>数据</em>为空,则会出现<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-56">一些使用示例:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">mean</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">])</span>
<span class="go">2.8</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">mean</span><span class="p">([</span><span class="o">-</span><span class="mf">1.0</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">3.25</span><span class="p">,</span> <span class="mf">5.75</span><span class="p">])</span>
<span class="go">2.625</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">fractions</span> <span class="k">import</span> <span class="n">Fraction</span> <span class="k">as</span> <span class="n">F</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">mean</span><span class="p">([</span><span class="n">F</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span> <span class="mi">7</span><span class="p">),</span> <span class="n">F</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">21</span><span class="p">),</span> <span class="n">F</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">),</span> <span class="n">F</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">)])</span>
<span class="go">Fraction(13, 21)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">decimal</span> <span class="k">import</span> <span class="n">Decimal</span> <span class="k">as</span> <span class="n">D</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">mean</span><span class="p">([</span><span class="n">D</span><span class="p">(</span><span class="s2">"0.5"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"0.75"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"0.625"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"0.375"</span><span class="p">)])</span>
<span class="go">Decimal('0.5625')</span>
</code></pre><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-57">注意</span></p><p><span class="yiyi-st" id="yiyi-58">平均值受异常值强烈影响,并且不是中心位置的鲁棒估计器:平均值不一定是数据点的典型示例。</span><span class="yiyi-st" id="yiyi-59">对于更稳健,虽然效率较低,中心位置的测量,参见<a class="reference internal" href="#statistics.median" title="statistics.median"><code class="xref py py-func docutils literal"><span class="pre">median()</span></code></a><a class="reference internal" href="#statistics.mode" title="statistics.mode"><code class="xref py py-func docutils literal"><span class="pre">mode()</span></code></a></span><span class="yiyi-st" id="yiyi-60">(在这种情况下,“有效”是指统计效率而不是计算效率。)</span></p><p class="last"><span class="yiyi-st" id="yiyi-61">样本平均值给出真实总体平均值的无偏估计,这意味着,在所有可能样本上取平均值,<code class="docutils literal"><span class="pre">mean(sample)</span></code>收敛于整个群体的真实平均值。</span><span class="yiyi-st" id="yiyi-62">如果<em>数据</em>代表整个群体而不是样本,则<code class="docutils literal"><span class="pre">mean(data)</span></code>等效于计算真实群体平均值μ。</span></p></div></dd></dl><dl class="function"><dt id="statistics.median"><span class="yiyi-st" id="yiyi-63"><code class="descclassname">statistics.</code><code class="descname">median</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-64">使用常用的“中间两个平均值”方法返回数值数据的中值(中间值)。</span><span class="yiyi-st" id="yiyi-65">如果<em>data</em>为空,则会出现<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-66">中位数是中心位置的可靠度量,并且受到数据中异常值的存在的影响较小。</span><span class="yiyi-st" id="yiyi-67">当数据点的数量为奇数时,返回中间数据点:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">median</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">])</span>
<span class="go">3</span>
</code></pre><p><span class="yiyi-st" id="yiyi-68">当数据点的数量为偶数时,通过取两个中间值的平均值来内插中值:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">median</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">7</span><span class="p">])</span>
<span class="go">4.0</span>
</code></pre><p><span class="yiyi-st" id="yiyi-69">这适合于您的数据是离散的,并且您不介意中值可能不是实际的数据点。</span></p><div class="admonition seealso"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-70">也可以看看</span></p><p class="last"><span class="yiyi-st" id="yiyi-71"><a class="reference internal" href="#statistics.median_low" title="statistics.median_low"><code class="xref py py-func docutils literal"><span class="pre">median_low()</span></code></a><a class="reference internal" href="#statistics.median_high" title="statistics.median_high"><code class="xref py py-func docutils literal"><span class="pre">median_high()</span></code></a><a class="reference internal" href="#statistics.median_grouped" title="statistics.median_grouped"><code class="xref py py-func docutils literal"><span class="pre">median_grouped()</span></code></a></span></p></div></dd></dl><dl class="function"><dt id="statistics.median_low"><span class="yiyi-st" id="yiyi-72"><code class="descclassname">statistics.</code><code class="descname">median_low</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-73">返回数值数据的低中位数。</span><span class="yiyi-st" id="yiyi-74">如果<em>data</em>为空,则会出现<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-75">低中值总是数据集的成员。</span><span class="yiyi-st" id="yiyi-76">当数据点的数量为奇数时,返回中间值。</span><span class="yiyi-st" id="yiyi-77">当为偶数时,返回两个中间值中较小的值。</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">median_low</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">])</span>
<span class="go">3</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">median_low</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">7</span><span class="p">])</span>
<span class="go">3</span>
</code></pre><p><span class="yiyi-st" id="yiyi-78">当数据为离散数据时,使用低中值,并且您更喜欢中值为实际数据点,而不是内插。</span></p></dd></dl><dl class="function"><dt id="statistics.median_high"><span class="yiyi-st" id="yiyi-79"><code class="descclassname">statistics.</code><code class="descname">median_high</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-80">返回数据的高中位数。</span><span class="yiyi-st" id="yiyi-81">如果<em>data</em>为空,则会出现<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-82">高中位数始终是数据集的成员。</span><span class="yiyi-st" id="yiyi-83">当数据点的数量为奇数时,返回中间值。</span><span class="yiyi-st" id="yiyi-84">当为偶数时,返回两个中间值中的较大者。</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">median_high</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">])</span>
<span class="go">3</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">median_high</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">7</span><span class="p">])</span>
<span class="go">5</span>
</code></pre><p><span class="yiyi-st" id="yiyi-85">在数据离散时使用高中位数,并且您更喜欢中位数为实际数据点而不是内插。</span></p></dd></dl><dl class="function"><dt id="statistics.median_grouped"><span class="yiyi-st" id="yiyi-86"><code class="descclassname">statistics.</code><code class="descname">median_grouped</code><span class="sig-paren">(</span><em>data</em>, <em>interval=1</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-87">使用内插法返回分组连续数据的中值计算为第50个百分位数。</span><span class="yiyi-st" id="yiyi-88">如果<em>data</em>为空,则会出现<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a></span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">median_grouped</span><span class="p">([</span><span class="mi">52</span><span class="p">,</span> <span class="mi">52</span><span class="p">,</span> <span class="mi">53</span><span class="p">,</span> <span class="mi">54</span><span class="p">])</span>
<span class="go">52.5</span>
</code></pre><p><span class="yiyi-st" id="yiyi-89">在下面的示例中,数据被四舍五入,使得每个值表示数据类的中点,例如。</span><span class="yiyi-st" id="yiyi-90">1是0.5-1.5等级的中点2是1.5-2.5的中点3是2.5-3.5的中点等。</span><span class="yiyi-st" id="yiyi-91">使用给定的数据中间值落在类3.5-4.5中的某处,并且使用插值来估计它:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">median_grouped</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">])</span>
<span class="go">3.7</span>
</code></pre><p><span class="yiyi-st" id="yiyi-92">可选参数<em>interval</em>表示类间隔默认为1。</span><span class="yiyi-st" id="yiyi-93">自然改变类间隔将改变插值:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">median_grouped</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">7</span><span class="p">],</span> <span class="n">interval</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="go">3.25</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">median_grouped</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">5</span><span class="p">,</span> <span class="mi">7</span><span class="p">],</span> <span class="n">interval</span><span class="o">=</span><span class="mi">2</span><span class="p">)</span>
<span class="go">3.5</span>
</code></pre><p><span class="yiyi-st" id="yiyi-94">此函数不检查数据点是否至少<em>interval</em></span></p><div class="impl-detail compound"><p><span class="yiyi-st" id="yiyi-95"><strong>CPython实现细节</strong>在某些情况下,<a class="reference internal" href="#statistics.median_grouped" title="statistics.median_grouped"><code class="xref py py-func docutils literal"><span class="pre">median_grouped()</span></code></a>可能会将数据点强制为浮点数。</span><span class="yiyi-st" id="yiyi-96">这种行为在未来可能会改变。</span></p></div><div class="admonition seealso"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-97">也可以看看</span></p><ul class="last simple"><li><span class="yiyi-st" id="yiyi-98">“行为科学统计”Frederick J Gravetter和Larry B Wallnau第8版</span></li><li><span class="yiyi-st" id="yiyi-99">计算<a class="reference external" href="https://www.ualberta.ca/~opscan/median.html">中位数</a></span></li><li><span class="yiyi-st" id="yiyi-100">Gnome Gnumeric电子表格中的<a class="reference external" href="https://help.gnome.org/users/gnumeric/stable/gnumeric.html#gnumeric-function-SSMEDIAN">SSMEDIAN</a>函数,包括<a class="reference external" href="https://mail.gnome.org/archives/gnumeric-list/2011-April/msg00018.html">此讨论</a></span></li></ul></div></dd></dl><dl class="function"><dt id="statistics.mode"><span class="yiyi-st" id="yiyi-101"><code class="descclassname">statistics.</code><code class="descname">mode</code><span class="sig-paren">(</span><em>data</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-102">从离散或标称<em>数据</em>返回最常用的数据点。</span><span class="yiyi-st" id="yiyi-103">模式(当它存在时)是最典型的值,并且是中心位置的鲁棒测量。</span></p><p><span class="yiyi-st" id="yiyi-104">如果<em>data</em>为空,或者如果没有一个最常见的值,则会引发<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-105"><code class="docutils literal"><span class="pre">mode</span></code>假定离散数据,并返回单个值。</span><span class="yiyi-st" id="yiyi-106">这是学校通常教授的模式的标准处理:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">mode</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">])</span>
<span class="go">3</span>
</code></pre><p><span class="yiyi-st" id="yiyi-107">该模式是唯一的,因为它是唯一也适用于标称(非数字)数据的统计量:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">mode</span><span class="p">([</span><span class="s2">"red"</span><span class="p">,</span> <span class="s2">"blue"</span><span class="p">,</span> <span class="s2">"blue"</span><span class="p">,</span> <span class="s2">"red"</span><span class="p">,</span> <span class="s2">"green"</span><span class="p">,</span> <span class="s2">"red"</span><span class="p">,</span> <span class="s2">"red"</span><span class="p">])</span>
<span class="go">'red'</span>
</code></pre></dd></dl><dl class="function"><dt id="statistics.pstdev"><span class="yiyi-st" id="yiyi-108"><code class="descclassname">statistics.</code><code class="descname">pstdev</code><span class="sig-paren">(</span><em>data</em>, <em>mu=None</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-109">返回总体标准差(总体方差的平方根)。</span><span class="yiyi-st" id="yiyi-110">有关参数和其他详细信息,请参见<a class="reference internal" href="#statistics.pvariance" title="statistics.pvariance"><code class="xref py py-func docutils literal"><span class="pre">pvariance()</span></code></a></span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">pstdev</span><span class="p">([</span><span class="mf">1.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">2.75</span><span class="p">,</span> <span class="mf">3.25</span><span class="p">,</span> <span class="mf">4.75</span><span class="p">])</span>
<span class="go">0.986893273527251</span>
</code></pre></dd></dl><dl class="function"><dt id="statistics.pvariance"><span class="yiyi-st" id="yiyi-111"><code class="descclassname">statistics.</code><code class="descname">pvariance</code><span class="sig-paren">(</span><em>data</em>, <em>mu=None</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-112">返回<em>数据</em>的总体方差,实数值的非空迭代。</span><span class="yiyi-st" id="yiyi-113">方差或关于均值的二阶矩是数据的可变性(扩展或分散)的度量。</span><span class="yiyi-st" id="yiyi-114">大的方差表示数据被展开;小方差表示它在均值附近聚集。</span></p><p><span class="yiyi-st" id="yiyi-115">如果给出了可选的第二个参数<em>mu</em>,它应该是<em>数据</em>的平均值。</span><span class="yiyi-st" id="yiyi-116">如果缺少或<code class="docutils literal"><span class="pre">None</span></code>(默认值),将自动计算平均值。</span></p><p><span class="yiyi-st" id="yiyi-117">使用此函数计算整个总体的方差。</span><span class="yiyi-st" id="yiyi-118">为了从样本估计方差,<a class="reference internal" href="#statistics.variance" title="statistics.variance"><code class="xref py py-func docutils literal"><span class="pre">variance()</span></code></a>函数通常是更好的选择。</span></p><p><span class="yiyi-st" id="yiyi-119">引发<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a>如果<em>数据</em>为空。</span></p><p><span class="yiyi-st" id="yiyi-120">例子:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="mf">0.0</span><span class="p">,</span> <span class="mf">0.25</span><span class="p">,</span> <span class="mf">0.25</span><span class="p">,</span> <span class="mf">1.25</span><span class="p">,</span> <span class="mf">1.5</span><span class="p">,</span> <span class="mf">1.75</span><span class="p">,</span> <span class="mf">2.75</span><span class="p">,</span> <span class="mf">3.25</span><span class="p">]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pvariance</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="go">1.25</span>
</code></pre><p><span class="yiyi-st" id="yiyi-121">如果您已经计算了数据的平均值,则可以将其作为可选的第二个参数<em>mu</em>传递,以避免重新计算:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">mu</span> <span class="o">=</span> <span class="n">mean</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pvariance</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">mu</span><span class="p">)</span>
<span class="go">1.25</span>
</code></pre><p><span class="yiyi-st" id="yiyi-122">此函数不会尝试验证您已通过<em>mu</em>的实际平均值。</span><span class="yiyi-st" id="yiyi-123">使用<em>mu</em>的任意值可能导致无效或不可能的结果。</span></p><p><span class="yiyi-st" id="yiyi-124">支持小数和分数:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">decimal</span> <span class="k">import</span> <span class="n">Decimal</span> <span class="k">as</span> <span class="n">D</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pvariance</span><span class="p">([</span><span class="n">D</span><span class="p">(</span><span class="s2">"27.5"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"30.25"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"30.25"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"34.5"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"41.75"</span><span class="p">)])</span>
<span class="go">Decimal('24.815')</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">fractions</span> <span class="k">import</span> <span class="n">Fraction</span> <span class="k">as</span> <span class="n">F</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">pvariance</span><span class="p">([</span><span class="n">F</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">4</span><span class="p">),</span> <span class="n">F</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">4</span><span class="p">),</span> <span class="n">F</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">)])</span>
<span class="go">Fraction(13, 72)</span>
</code></pre><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-125">注意</span></p><p><span class="yiyi-st" id="yiyi-126">当调用整个人口时,这给出了人口方差σ²。</span><span class="yiyi-st" id="yiyi-127">当对样本调用时这是偏置样本方差s²也称为具有N个自由度的方差。</span></p><p class="last"><span class="yiyi-st" id="yiyi-128">如果你以某种方式知道真实总体平均值μ,你可以使用这个函数来计算样本的方差,给出已知总体平均值作为第二个参数。</span><span class="yiyi-st" id="yiyi-129">如果数据点是代表性的(例如,</span><span class="yiyi-st" id="yiyi-130">独立和相同分布),结果将是人口方差的无偏估计。</span></p></div></dd></dl><dl class="function"><dt id="statistics.stdev"><span class="yiyi-st" id="yiyi-131"><code class="descclassname">statistics.</code><code class="descname">stdev</code><span class="sig-paren">(</span><em>data</em>, <em>xbar=None</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-132">返回样本标准偏差(样本方差的平方根)。</span><span class="yiyi-st" id="yiyi-133">有关参数和其他详细信息,请参见<a class="reference internal" href="#statistics.variance" title="statistics.variance"><code class="xref py py-func docutils literal"><span class="pre">variance()</span></code></a></span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">stdev</span><span class="p">([</span><span class="mf">1.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">2.5</span><span class="p">,</span> <span class="mf">2.75</span><span class="p">,</span> <span class="mf">3.25</span><span class="p">,</span> <span class="mf">4.75</span><span class="p">])</span>
<span class="go">1.0810874155219827</span>
</code></pre></dd></dl><dl class="function"><dt id="statistics.variance"><span class="yiyi-st" id="yiyi-134"><code class="descclassname">statistics.</code><code class="descname">variance</code><span class="sig-paren">(</span><em>data</em>, <em>xbar=None</em><span class="sig-paren">)</span></span></dt><dd><p><span class="yiyi-st" id="yiyi-135">返回<em>数据</em>的样本方差,这是至少两个实数值的迭代。</span><span class="yiyi-st" id="yiyi-136">方差或关于均值的二阶矩是数据的可变性(扩展或分散)的度量。</span><span class="yiyi-st" id="yiyi-137">大的方差表示数据被展开;小方差表示它在均值附近聚集。</span></p><p><span class="yiyi-st" id="yiyi-138">如果给出了可选的第二个参数<em>xbar</em>,它应该是<em>数据</em>的平均值。</span><span class="yiyi-st" id="yiyi-139">如果缺少或<code class="docutils literal"><span class="pre">None</span></code>(默认值),将自动计算平均值。</span></p><p><span class="yiyi-st" id="yiyi-140">当您的数据是来自总体的样本时使用此函数。</span><span class="yiyi-st" id="yiyi-141">要计算整个群体的方差,请参见<a class="reference internal" href="#statistics.pvariance" title="statistics.pvariance"><code class="xref py py-func docutils literal"><span class="pre">pvariance()</span></code></a></span></p><p><span class="yiyi-st" id="yiyi-142">引发<a class="reference internal" href="#statistics.StatisticsError" title="statistics.StatisticsError"><code class="xref py py-exc docutils literal"><span class="pre">StatisticsError</span></code></a>如果<em>数据</em>具有少于两个值。</span></p><p><span class="yiyi-st" id="yiyi-143">例子:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">data</span> <span class="o">=</span> <span class="p">[</span><span class="mf">2.75</span><span class="p">,</span> <span class="mf">1.75</span><span class="p">,</span> <span class="mf">1.25</span><span class="p">,</span> <span class="mf">0.25</span><span class="p">,</span> <span class="mf">0.5</span><span class="p">,</span> <span class="mf">1.25</span><span class="p">,</span> <span class="mf">3.5</span><span class="p">]</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">variance</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="go">1.3720238095238095</span>
</code></pre><p><span class="yiyi-st" id="yiyi-144">如果您已计算数据的均值,则可以将其作为可选的第二个参数<em>xbar</em>传递,以避免重新计算:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="n">m</span> <span class="o">=</span> <span class="n">mean</span><span class="p">(</span><span class="n">data</span><span class="p">)</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">variance</span><span class="p">(</span><span class="n">data</span><span class="p">,</span> <span class="n">m</span><span class="p">)</span>
<span class="go">1.3720238095238095</span>
</code></pre><p><span class="yiyi-st" id="yiyi-145">此函数不会尝试验证您是否已经通过了<em>xbar</em>的实际平均值。</span><span class="yiyi-st" id="yiyi-146">使用<em>xbar</em>的任意值可能导致无效或不可能的结果。</span></p><p><span class="yiyi-st" id="yiyi-147">支持小数和分数值:</span></p><pre><code class="language-python"><span></span><span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">decimal</span> <span class="k">import</span> <span class="n">Decimal</span> <span class="k">as</span> <span class="n">D</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">variance</span><span class="p">([</span><span class="n">D</span><span class="p">(</span><span class="s2">"27.5"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"30.25"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"30.25"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"34.5"</span><span class="p">),</span> <span class="n">D</span><span class="p">(</span><span class="s2">"41.75"</span><span class="p">)])</span>
<span class="go">Decimal('31.01875')</span>
<span class="gp">&gt;&gt;&gt; </span><span class="kn">from</span> <span class="nn">fractions</span> <span class="k">import</span> <span class="n">Fraction</span> <span class="k">as</span> <span class="n">F</span>
<span class="gp">&gt;&gt;&gt; </span><span class="n">variance</span><span class="p">([</span><span class="n">F</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">6</span><span class="p">),</span> <span class="n">F</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">),</span> <span class="n">F</span><span class="p">(</span><span class="mi">5</span><span class="p">,</span> <span class="mi">3</span><span class="p">)])</span>
<span class="go">Fraction(67, 108)</span>
</code></pre><div class="admonition note"><p class="first admonition-title"><span class="yiyi-st" id="yiyi-148">注意</span></p><p><span class="yiyi-st" id="yiyi-149">这是样本方差s²与贝塞尔校正也称为具有N-1自由度的方差。</span><span class="yiyi-st" id="yiyi-150">只要数据点是代表性的。</span><span class="yiyi-st" id="yiyi-151">独立和相同分布),结果应该是真实总体方差的无偏估计。</span></p><p class="last"><span class="yiyi-st" id="yiyi-152">如果您以某种方式知道实际的群体平均值μ,您应该将其作为<em>mu</em>参数传递给<a class="reference internal" href="#statistics.pvariance" title="statistics.pvariance"><code class="xref py py-func docutils literal"><span class="pre">pvariance()</span></code></a>函数以获取样本的方差。</span></p></div></dd></dl></div><div class="section" id="exceptions"><h2><span class="yiyi-st" id="yiyi-153">9.7.4.</span><span class="yiyi-st" id="yiyi-154">异常</span></h2><p><span class="yiyi-st" id="yiyi-155">定义了一个异常:</span></p><dl class="exception"><dt id="statistics.StatisticsError"><span class="yiyi-st" id="yiyi-156"><em class="property">exception </em><code class="descclassname">statistics.</code><code class="descname">StatisticsError</code></span></dt><dd><p><span class="yiyi-st" id="yiyi-157">与统计相关的异常的<a class="reference internal" href="exceptions.html#ValueError" title="ValueError"><code class="xref py py-exc docutils literal"><span class="pre">ValueError</span></code></a>子类。</span></p></dd></dl></div></div></div>