131

複数の (Z) リストの 1 桁目、2 桁目、... 桁の平均と標準偏差を求めたい。たとえば、私は

A_rank=[0.8,0.4,1.2,3.7,2.6,5.8]
B_rank=[0.1,2.8,3.7,2.6,5,3.4]
C_Rank=[1.2,3.4,0.5,0.1,2.5,6.1]
# etc (up to Z_rank )...

*_Rank[0]ここで、 の平均と標準、 の平均と標準*_Rank[1]などを取得したいと思います
(つまり、すべての (A..Z)_rank リストの 1 桁目
の平均と標準; からの 2 桁目の平均と標準)すべての (A..Z)_rank リスト;
3 桁目の平均値と標準値...; など)。

4

8 に答える 8

183

Python 3.4 / PEP450statistics module以降、標準ライブラリには、あなたのようなイテラブルの標準偏差を計算する方法があります:stdev

>>> A_rank = [0.8, 0.4, 1.2, 3.7, 2.6, 5.8]
>>> import statistics
>>> statistics.stdev(A_rank)
2.0634114147853952
于 2014-02-02T00:27:10.577 に答える
116

A_Ranket al を 2D NumPy配列に入れ、 and を使用numpy.mean()numpy.std()て平均と標準偏差を計算します。

In [17]: import numpy

In [18]: arr = numpy.array([A_rank, B_rank, C_rank])

In [20]: numpy.mean(arr, axis=0)
Out[20]: 
array([ 0.7       ,  2.2       ,  1.8       ,  2.13333333,  3.36666667,
        5.1       ])

In [21]: numpy.std(arr, axis=0)
Out[21]: 
array([ 0.45460606,  1.29614814,  1.37355985,  1.50628314,  1.15566239,
        1.2083046 ])
于 2013-03-13T15:42:16.980 に答える
22

Python 2.7.1 では、次を使用して標準偏差を計算できますnumpy.std()

  • Population std :numpy.std()データ リスト以外に引数を追加せずに使用します。
  • サンプル std : 次の例のように、 ddof (デルタ自由度) を 1 に設定して渡す必要があります。

numpy.std(< あなたのリスト >, ddof=1 )

計算で使用される除数はN - ddofで、N は要素の数を表します。デフォルトでは、ddof はゼロです。

母集団標準ではなくサンプル標準を計算します。

于 2015-07-12T09:22:24.173 に答える
5

純粋な python コード:

from math import sqrt

def stddev(lst):
    mean = float(sum(lst)) / len(lst)
    return sqrt(float(reduce(lambda x, y: x + y, map(lambda x: (x - mean) ** 2, lst))) / len(lst))
于 2017-06-08T14:45:43.070 に答える