numpyを読み上げているうちに、numpy.histogram()
という関数が発生しました。numpy.histogram()はどのように機能しますか?
これはどのようなものですか。どのように動作しますか?ドキュメントには、ビン:彼らは何ですか?
グーグルが私をdefinition of Histograms in generalに導いてくれました。私はそれを得る。しかし、残念ながら、私はこの知識をドキュメントで与えられた例にリンクすることはできません。
numpyを読み上げているうちに、numpy.histogram()
という関数が発生しました。numpy.histogram()はどのように機能しますか?
これはどのようなものですか。どのように動作しますか?ドキュメントには、ビン:彼らは何ですか?
グーグルが私をdefinition of Histograms in generalに導いてくれました。私はそれを得る。しかし、残念ながら、私はこの知識をドキュメントで与えられた例にリンクすることはできません。
ビンは、X軸に沿ったヒストグラムの単一バーの幅を表す範囲です。また、これをインターバルと呼ぶこともできます。 (ウィキペディアはそれらを「非独立カテゴリ」として正式に定義しています)
Numpy histogram
関数はヒストグラムを描画しませんが、各ビン内の入力データの出現を計算します。ビンの幅が同じでない場合は高さが必要です)。この例では
:
np.histogram([1, 2, 1], bins=[0, 1, 2, 3])
0から1までの値について3つのビン、(除く1)、1~2(除く2)2〜3(含3)がありますそれぞれ、この例で区切り文字のリスト([0, 1, 2, 3]
)を指定すると、Numpyはこれらのビンを定義しますが、指定されていなければ自動的に入力から選択できるので、結果のビンも返します。たとえば、bins=5
の場合、最小入力値と最大入力値の間に等しい幅の5ビンを使用します。
したがって、「1〜2」のビンには2つのオカレンス(2つの1
の値)が含まれ、ビン「2〜3」には1つのオカレンス(2
)が含まれます。これらの結果は返されたタプルの最初の項目にあります:array([0, 2, 1])
。
ここではビンは幅が同じなので、各バーの高さにオカレンス数を使用できます。描かれたときは、あろう:
は(そのhist
機能もビンと値を返します):hist
があることを示し、以下
>>> import matplotlib.pyplot as plt
>>> plt.hist([1, 2, 1], bins=[0, 1, 2, 3])
(array([0, 2, 1]), array([0, 1, 2, 3]), <a list of 3 Patch objects>)
>>> plt.show()
import numpy as np
hist, bin_edges = np.histogram([1, 1, 2, 2, 2, 2, 3], bins = range(5))
がビン#0の2項目、ビン#1の2項目、ビン#3の4項目、ビン#4の1項目です。
print(hist)
# array([0, 2, 4, 1])
bin_edges
ビン#1は、[3,4)...、 ビン#3は、[1,2)、ビン#0は、間隔[0,1)であることを示しています。
print (bin_edges)
# array([0, 1, 2, 3, 4]))
上記のコードで再生し、入力をnp.histogram
に変更し、その動作を確認してください。
しかし、百聞は一見にしかずです:
import matplotlib.pyplot as plt
plt.bar(bin_edges[:-1], hist, width = 1)
plt.xlim(min(bin_edges), max(bin_edges))
plt.show()
プロットしたい場合は、[この回答](http://stackoverflow.com/a/5328669/372643)にも興味があります。 [Matplotlibはそれらを直接計算することもできます](http://matplotlib.sourceforge.net/api/pyplot_api.html#matplotlib.pyplot.hist)。例[here](http://matplotlib.sourceforge.net/examples/api/histogram_demo.html)および[here](http://matplotlib.sourceforge.net/examples/pylab_examples/histogram_demo_extended.html)を参照してください。 – Bruno
この回答をありがとう、それはちょうど私に大きな問題を救った! – AlexFZ