21

配列の外れ値を除外するトリム平均を計算しようとしています。

というモジュールがあることがわかりましたが、ユーザーはパーセンテージ値ではなく絶対値で範囲をscipy.stats.tmean指定する必要があります。

Matlab にはm = trimmean(X,percent)、まさに私が望むことを行う があります。

Python に対応するものはありますか?

4

3 に答える 3

25

少なくとも scipy v0.14.0 では、これ専用の関数があります ( scipy.stats.trim_mean ):

from scipy import stats
m = stats.trim_mean(X, 0.1) # Trim 10% at both ends

中で使用stats.trimbothしたもの。

ソース コードからproportiontocut=0.1、データの 80% を使用して平均が計算されることがわかります。scipy.stats.trim_meanでは扱えませんのでご注意くださいnp.nan

于 2014-08-24T15:40:20.303 に答える
9

(編集:この回答のコンテキストは、scipy.stats.trim_meanまだ文書化されていませんでした。公開されたので、自分でロールバックする代わりにその機能を使用してください。以下の私の回答は、歴史的な目的のために保持されています。)


MatLab ドキュメントの指示に従って、すべてを自分で実装することもできます。

Python 2 のコードは次のとおりです。

from numpy import mean
def trimmean(arr, percent):
    n = len(arr)
    k = int(round(n*(float(percent)/100)/2))
    return mean(arr[k+1:n-k])
于 2013-10-18T05:50:16.860 に答える