์ค๋์ Python์ ํ์ฉํ ๋ฐ์ดํฐ ์๊ฐํ์ ๊ฐ๋จํ ์ํ ์ฐ์ฐ์ ๋ํด ๊ณต๋ถํ์ต๋๋ค. ํนํ numpy, matplotlib, ๊ทธ๋ฆฌ๊ณ random walk์ ๋ํด ๊ถ๊ธํ๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํด์. ์ ์ฒ๋ผ ์ด๋ณด์๋ถ๋ค๊ป ๋์์ด ๋๊ธธ ๋ฐ๋๋๋ค ๐ฑ
plt.plot()๊ณผ ์ ๊ตต๊ธฐimport matplotlib.pyplot as plt
squares = [1, 4, 9, 16, 25]
plt.plot(squares, linewidth=3)
linewidth=3๋ ์ ์ ๊ตต๊ธฐ์
๋๋ค. boldness (๋๊ป)๋ฅผ ์กฐ์ ํ๋ ์ต์
์ด์์.plot(x, y)์ฒ๋ผ x๊ฐ๊ณผ y๊ฐ์ ๋ ๋ค ์ค ์ ์์ด์. y๋ง ์ฃผ๋ฉด x๋ ์๋์ผ๋ก [0, 1, 2, ...]๊ฐ ๋ฉ๋๋ค.๊ณต์ ๋ฌธ์ ์ฐธ๊ณ โ plt.plot
numpy๋ฅผ ์ฐ๋ ๊ฑธ๊น?๋ฆฌ์คํธ๋ range๋ ์ง์ ์ฐ์ฐ์ด ์ด๋ ต์ต๋๋ค:
x = range(10)
y = x + 1 # โ ์ค๋ฅ ๋ฐ์
ํ์ง๋ง numpy๋ฅผ ์ฐ๋ฉด ํ ์ค๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค:
import numpy as np
x = np.arange(10)
y = x + 1 # โ
๊ฐ๋ฅ
np.linspace vs np.arangenp.arange(start, stop, step) โ ์ ์ ๋จ์๋ ์ผ์ ๊ฐ๊ฒฉnp.linspace(start, stop, num) โ start๋ถํฐ stop๊น์ง ๊ท ๋ฑํ ๊ฐ๊ฒฉ์ผ๋ก num๊ฐ์ ๊ฐ์์:
x = np.linspace(-10, 10, 20)
y = x**2
plt.scatter(x, y)
plt.show()
plt.scatter() ์ขํ ํด์plt.scatter([3, 5], [2, 8])
(3, 5), (2, 8)์ผ๋ก ํด์๋์ง ์์ต๋๋ค!์ง๊ด์ ์ผ๋ก ์ดํดํ๊ณ ์ถ์ผ๋ฉด ์ด๋ ๊ฒ ํด๋ณด์ธ์:
points = [(3, 5), (2, 8)]
x = [p[0] for p in points]
y = [p[1] for p in points]
plt.scatter(x, y)
RandomWalk ํด๋์ค ๋ถ์x_direction = choice([1, -1])
x_distance = choice([0, 1, 2, 3, 4])
x_step = x_direction * x_distance
์ด ๋ถ๋ถ์ด ์กฐ๊ธ ํท๊ฐ๋ ธ๋๋ฐ, ์ค๋ช ํ์๋ฉด:
choice([1, -1]): ๋ฐฉํฅ (โ ๋๋ โ)choice([0~4]): ์ผ๋ง๋ ๋ฉ๋ฆฌ ๊ฐ์ง์๋ฅผ ๋ค์ด x_direction = -1์ด๊ณ x_distance = 3์ด๋ฉด x_step = -3 โ ์ผ์ชฝ์ผ๋ก 3์นธ ์ด๋์ด์ฃ !
| ๊ฐ๋ | ์ค๋ช |
|---|---|
numpy | ๋ฐฐ์ด ์ฐ์ฐ์ ๋น ๋ฅด๊ณ ์ง๊ด์ ์ผ๋ก ๊ฐ๋ฅํ๊ฒ ํจ |
matplotlib.pyplot.plot() | ์ ๊ทธ๋ํ |
matplotlib.pyplot.scatter() | ์ ๊ทธ๋ํ, (x, y) ๋ฆฌ์คํธ๋ก ์ขํ ์ค์ |
np.linspace() | ๋ฑ๊ฐ๊ฒฉ ์ซ์ ๋ฐฐ์ด ์์ฑ |
RandomWalk์ choice() | ๋ฐฉํฅ๊ณผ ๊ฑฐ๋ฆฌ ์ ํ์ผ๋ก ๋๋ค ์ด๋ ๊ตฌํ |
ํ์ํ ๋ด์ฉ์ ์งง๊ฒ ์ ๋ฆฌํ๋ฉด์๋ ์ดํดํ๋ ค๊ณ ๋ ธ๋ ฅํด๋ดค์ด์. ์ ์ฒ๋ผ Python์ ๊ณต๋ถํ๋ ๋ถ๋ค์๊ฒ ๋์์ด ๋์๊ธธ ๋ฐ๋ผ๋ฉฐ, ๋ ๊ถ๊ธํ ๊ฒ ์๊ธฐ๋ฉด ๋ ์ ๋ฆฌํด๋ณผ๊ฒ์ ๐