2017-08-14 7 views
0

私はN(ポジティブ)ポイントの配列を持っています。私はすべての棒が同じ高さを持つようにヒストグラムのM個のビンの辺を見つけたいと思います。言い換えれば、2つの連続するビンエッジ間の配列ポイントの数が同じになるように、M + 1ポイントを探したいと思います。N個のポイントをM個の等しいビンに入れます

>>> array = [0.3 0.3 0.3 0.7 0.8 0.9] 
>>> M = 2 
>>> binPartition(array, M) 
[0, 0.5, 1] 

私はPythonとnumpyの中で答えをいただければ幸いですが、知られているアルゴリズムへのリンクは十分です!ありがとうございました! :) percentileで行うことができるよりも

+0

ほとんど3kの担当者とユーザからの要求を書いたコード? @EugeneSh。 –

+0

algortithmへのリンクは十分だったでしょう:) – Ant

+1

あなたはそれもOTになることを知っておくべきです。 –

答えて

1

import numpy as np 

def binPartition(array, M): 
    return np.percentile(array, np.linspace(0, 100, M + 1)) 

binPartition([0.3, 0.3, 0.3, 0.7, 0.8, 0.9], 2) 
>>> array([ 0.3, 0.5, 0.9]) 
+0

ありがとうございます。私は脳のおならを持っていたに違いない、私はパーセンタイル関数を求めていた:D – Ant

関連する問題