2017-11-27 6 views
0

私はデータが1から500までの1次元配列を持っています。 データの分布はlog-normalのように見えます。私が欲しいものデータを対数正規にスケールします。私のアプローチは正しいのですか?

は、私が使用するために機能するかについて確認していない(データ)をログに記録する配列を再サンプリングすることである。

numpy.logまたはnumpy.log1p

私の再スケール機能は、次のようになり、しかし、私は確認していないその右の場合:

def ScaleData(dataset): 
    datas = [] 
    for x in np.nditer(dataset): 
     a = np.log(x) 
     datas.append(a) 
    return np.array(datas) 

テスト:

38, 48, 39, 83, 64, 57 
goes to: 
3.63758616, 3.87120101, 3.66356165, 4.41884061, 4.15888308, 4.04305127 

そうですか?あなたは対数正規分布にあなたのデータに合うようにしたい場合は

+1

numpyのを扱う場合は、forループを回避しようとします。 'np.log' numpy配列で動作します。 – Sosel

+0

1.通常の数値を使って次元を表示し、対数を使って次元を表示する2D配列では、Log-NormalとLog-Logを使用します。 2.正規化とは、データが0から1まで変化するようにデータを拡大することを意味します。 – Ehsan

+0

@Sosel \t ありがとうございます。私は別の質問があります。どのように私は通常の値にnp.log(データセット)を変換することができますか? –

答えて

0
  • :あなたはscipy.stats.lognorm.fit(listofdata)を使用してKalmogorov Smirnov検定でフィッティングの品質をチェックする必要がありますscipy.stats.kstest
  • データを変換する場合は、np.log(データセット)で十分です。

ベスト

+0

あなたの助言をありがとう。私は別の質問があります。どのように私は通常の値にnp.log(データセット)を変換することができますか? –

関連する問題