Numpy: np.hist()์— ๋Œ€๋Ÿ‰ ํ‚ค์›Œ๋“œ ์ถ”๊ฐ€

์— ๋งŒ๋“  2017๋…„ 10์›” 25์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: numpy/numpy

๋งŽ์€ ์˜ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” ํ™•๋ฅ  ์งˆ๋Ÿ‰ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  numpy.hist ํ•˜๊ณ  ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜์—†๋Š” ํ˜ผ๋™๋œ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ ํ™•๋ฅ  ๋ฐ€๋„ ํ•จ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ https://github.com/numpy/numpy/issues/1043 normed ์„ density ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ ํ›Œ๋ฅญํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค.
์ด์™€ ์œ ์‚ฌํ•˜๊ฒŒ, ๋‚˜๋Š” ( True ) ํ™•๋ฅ  ์งˆ๋Ÿ‰ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” mass ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๊ฒƒ์„ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

๊ธ์ •์ ์ธ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์œผ๋ฉด ์ด ๊ธฐ๋Šฅ๋„ ๊ตฌํ˜„ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ์ •๊ทœํ™”๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๊ณ ๋ คํ•˜๋ฉด ๋‹จ์ˆœํžˆ ํŽธ์˜์ƒ ๊ธฐ๋Šฅ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ถ”๊ฐ€ ๋ผ์ธ์€ ์ผ๋‹จ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ์ถ”๊ฐ€๋˜๊ณ  ํ˜„์žฌ ๊ตฌํ˜„์€ ํ‘œ์ค€์„ ์ฐพ๊ณ  ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์„ ๋•Œ ์ขŒ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” ์ƒˆ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค norm_type ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Matplotlib๋Š” np.histogram์˜ ๋ฐ˜ํ™˜ ๊ตฌ์กฐ๋ฅผ plot/bar/etc์— ๋Œ€ํ•œ ์ž…๋ ฅ์œผ๋กœ ์ง์ ‘ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค. Pandas DataFrames๋กœ ์ž‘์—…ํ•  ๋•Œ ์ƒํ™ฉ์ด ์กฐ๊ธˆ ๋” ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์Šฌ๋ผ์ด์Šคํ•˜๊ณ  np.histogram์„ ์‹คํ–‰ํ•œ ๋‹ค์Œ ํ”Œ๋กฏํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, count/sum/pmf ์ •๊ทœํ™”๋ฅผ np.histogram์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•˜์ง€๋งŒ(๋ฐ˜๋Œ€ํ•˜๋Š” ํ•˜๋‚˜์˜ ์ธ์ˆ˜), ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ชจ๋“ˆ์—์„œ ํŽธ๋ฆฌํ•จ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

์ •๊ทœํ™”์™€ ๋น„๋‹์ด ํžˆ์Šคํ† ๊ทธ๋žจ์˜ ๋‘ ๊ฐ€์ง€ ๋…๋ฆฝ์ ์ธ ์š”์†Œ๋ผ๋Š” ์‚ฌ์‹ค์„ ๋…ผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. PDF ๋ฐ PMF๋Š” ๋ถ€์ ํ•ฉํ•œ ๋ฒ”์ฃผ์ž…๋‹ˆ๋‹ค. ๊ณก์„  ์•„๋ž˜ ์˜์—ญ(PDF)์œผ๋กœ ์ •๊ทœํ™”๋˜๋Š” ์—ฐ์†ํ˜• ๋ณ€์ˆ˜๋ฅผ ๋น„๋‹ํ•  ์ˆ˜ ์žˆ๊ณ , ์ „ํ˜€ ์ •๊ทœํ™”๋˜์ง€ ์•Š์€(๊ฐœ์ˆ˜), ๋นˆ ๊ฐ’์˜ ํ•ฉ์œผ๋กœ ์ •๊ทœํ™”๋˜๋Š” ์—ฐ์†ํ˜• ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. (๋น„๋‹๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ๋กœ PMF๊ฐ€ ์•„๋‹˜), ๋น„์—ฐ์† ๋ณ€์ˆ˜(Chevy, Volvo, Ford ๋“ฑ PMF)์— ๋Œ€ํ•œ ๋นˆ ๊ฐ’์˜ ํ•ฉ์œผ๋กœ ์ •๊ทœํ™”๋˜๊ณ  ์•„๋งˆ๋„ ๋‹ค๋ฅธ ๊ฒƒ๋“ค์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋„๊ตฌ๋Š” ๋ถ„๋ช…ํžˆ ๋ฌธ์ž์—ด ์ž…๋ ฅ์„ ์„ ํƒ ํ•ญ๋ชฉ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ์ด๊ฒƒ์— ๋Œ€ํ•ด matplotlib์™€ ๋…ผ์Ÿ์„ ๋ฒŒ์—ฌ์™”๋‹ค. ์ •๊ทœํ™”๋Š” ์ˆ˜ํ•™์ ์œผ๋กœ ์‚ฌํ›„์— ์ˆ˜ํ–‰ํ•˜๊ธฐ ์‰ฝ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด numpy์˜ ์ž‘์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์–ด๋ ค์šด ๊ฒƒ์€ ๊ทธ๋ž˜ํ”„์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ์ •๊ทœํ™”์™€ ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค์—์„œ ์ค‘๊ฐ„ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ๋ž˜ํผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๋น—๋‚˜๊ฐ„๋‹ค.

ํžˆ์Šคํ† ๊ทธ๋žจ์—์„œ ์ •๊ทœํ™”๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š”์ง€ ๊ณ ๋ คํ•˜๋ฉด ๋‹จ์ˆœํžˆ ํŽธ์˜์ƒ ๊ธฐ๋Šฅ์„ ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ถ”๊ฐ€ ๋ผ์ธ์€ ์ผ๋‹จ ํฐ ๋ฌธ์ œ๊ฐ€ ์•„๋‹ˆ์ง€๋งŒ ์ถ”๊ฐ€๋˜๊ณ  ํ˜„์žฌ ๊ตฌํ˜„์€ ํ‘œ์ค€์„ ์ฐพ๊ณ  ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์„ ๋•Œ ์ขŒ์ ˆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ์ €๋Š” ์ƒˆ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค norm_type ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ Matplotlib๋Š” np.histogram์˜ ๋ฐ˜ํ™˜ ๊ตฌ์กฐ๋ฅผ plot/bar/etc์— ๋Œ€ํ•œ ์ž…๋ ฅ์œผ๋กœ ์ง์ ‘ ๋ฐ›์•„๋“ค์ž…๋‹ˆ๋‹ค. Pandas DataFrames๋กœ ์ž‘์—…ํ•  ๋•Œ ์ƒํ™ฉ์ด ์กฐ๊ธˆ ๋” ๋ฌธ์ œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์Šฌ๋ผ์ด์Šคํ•˜๊ณ  np.histogram์„ ์‹คํ–‰ํ•œ ๋‹ค์Œ ํ”Œ๋กฏํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๊ฒƒ๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ, count/sum/pmf ์ •๊ทœํ™”๋ฅผ np.histogram์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์†Œํ•˜์ง€๋งŒ(๋ฐ˜๋Œ€ํ•˜๋Š” ํ•˜๋‚˜์˜ ์ธ์ˆ˜), ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ชจ๋“ˆ์—์„œ ํŽธ๋ฆฌํ•จ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

matplotlib/matplotlib#10398์—์„œ ๊ฒ€ํ† ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋Ÿฌํ•œ ํ‚ค์›Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๋งŽ์€ ํ† ๋ก ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰