collections.Counter()
是dict
的一個子類。只需使用Counter().values()
得到計數的列表:
counts = Counter(some_iterable_to_be_counted)
mean = numpy.mean(counts.values())
請注意,我沒有不呼叫Counter.most_common()
這裏,這將產生你在你的問題發佈(key, count)
元組列表。
如果必須使用的Counter.most_common()
輸出就可以過濾掉只是一個列表理解的計數:
mean = numpy.mean([count for key, count in most_common_list])
如果您正在使用Python 3(dict.values()
返回一個字典視圖),您既可以通在list(counts.values())
中,或使用標準庫staticstics.mean()
function,這需要一個可迭代的(包括dict.values()
字典視圖)。
如果您打算計算其平均值鍵值按其計數加權,您可以直接從計數器值進行自己的計算。在Python 2這會是:
from __future__ import division
mean = sum(key * count for key, count in counter.iteritems())/sum(counter.itervalues())
的from __future__
進口應該在你的模塊的頂部,並確保您不會遇到大的浮點數溢出的問題。在Python 3中,將被簡化爲:
mean = sum(key * count for key, count in counter.items())/sum(counter.values())
中位數可以用平分計算;按鍵對(key, count)
對進行排序,對計數求和,並將中途點對分爲計數的累加和。插入點的索引指向已排序鍵列表中的中鍵。
(沒有時間寫回答自己,但'np.average'有一個權重參數,你可以做手工STDDEV,請參閱[這裏](http://stackoverflow.com/questions/2413522/weighted - 標準偏差 - 在-numpy的) - 如果有人想用這種方法,我會刪除此) – DSM