0

特定のビンを使用して、一種のヒストグラムを作成する必要があります (これがそれらを呼び出すのに最適な名前であるかどうかはわかりません)。例を挙げると:

ビンは次のとおりです。

-0.15|-0.10|-0.05|0.0|0.05|0.10|0.15

入力として、値が -0.16 から 0.16 の間の行列があります。たとえば、0.0884 を読み取った場合、0.10 としてカウントする必要があります。これを行うには、この値がどの範囲に収まるか、つまり [0.05, 0.10] を確認できることがわかっています。I は、値とその上限および下限 (各値の絶対値) との差を計算できます。したがって、値は差が最小のビンのようにカウントされます。しかし、Python で非常に複雑なことを行うための非常に単純なコードを見つけたので、これを行う簡単な方法があるかどうか疑問に思っています。

ありがとう。

4

2 に答える 2

4
def get_bin(n, step=0.05):
    return step * round(n / step)

例:

>>> get_bin(0.0884)
0.1
>>> get_bin(-0.027)                                                                                                   
-0.05
>>> get_bin(-0.023)                                                                                                   
-0.0

この方法については、https ://stackoverflow.com/a/2272174/505154 で詳しく説明しています。

于 2013-09-23T18:03:03.453 に答える
0

ヒストグラムが必要なので、ビンの順序付きリストにポイントを割り当てたいと思います。だからここに行きます:

bins = ((-0.15,[]), (-0.10,[]), (-0.05,[]), (0.00,[]), (0.05,[]), (0.10,[]), (0.15,[]))

def store(point):
    for bin in bins:
        if point < bin[0]:
            bin[1].append(point)
            return
    bins[len(bins)-1][1].append(point)

store(0.0884)

bins
于 2013-09-23T18:25:37.183 に答える