配列の外れ値を除外するトリム平均を計算しようとしています。
というモジュールがあることがわかりましたが、ユーザーはパーセンテージ値ではなく絶対値で範囲をscipy.stats.tmean
指定する必要があります。
Matlab にはm = trimmean(X,percent)
、まさに私が望むことを行う があります。
Python に対応するものはありますか?
配列の外れ値を除外するトリム平均を計算しようとしています。
というモジュールがあることがわかりましたが、ユーザーはパーセンテージ値ではなく絶対値で範囲をscipy.stats.tmean
指定する必要があります。
Matlab にはm = trimmean(X,percent)
、まさに私が望むことを行う があります。
Python に対応するものはありますか?
少なくとも 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
。
(編集:この回答のコンテキストは、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])