mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-06-08 06:55:36 +08:00
67 lines
40 KiB
HTML
67 lines
40 KiB
HTML
<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">map(float,</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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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">>>> </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> |