Python_6 - jjin-choi/study_note GitHub Wiki
ยง Numpy
1. Array ์ ์ ๋ฐ ์ฌ์ฉํ๊ธฐ
- c์ธ์ด๋ก ๊ตฌํ๋ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ณ ์ฑ๋ฅ ์์น๊ณ์ฐ์ ์ํด ์ ์
- ๋ฒกํฐ ๋ฐ ํ๋ ฌ ์ฐ์ฐ์ ์์ด ๋งค์ฐ ํธ๋ฆฌ
- array (ํ๋ ฌ) ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ฉฐ ์ด์ ๋ํด ์ฐ์ฐ ์ํ
- list๋ฅผ np.array ๋ก ์ค์ ํ๋ฉด a.shape๋ (4,) ๋ก, 1์ฐจ์ ๋ฐ์ดํฐ์ด๋ฉฐ ์ด 4 ํฌ๊ธฐ ๊ฐ์
- np.eye(n) ์ 1์ด ๋๊ฐ์ ์ผ๋ก ๋ค์ด๊ฐ ํ๋ ฌ
2. ์ ์ ์ธ๋ฑ์ฑ
-
์ ์ ์ธ๋ฑ์ฑ
-
๋ถ์ธ๋ฆฐ ์ธ๋ฑ์ค
-
์์์ ์ด์ฉํ ๋ค์ฐจ์ ์ธ๋ฑ์ฑ์ ์์ฉํ์ฌ boolean indexing ๊ฐ๋ฅ, ์ฃผ๋ก ๋ง์คํฌ ๋ผ๊ณ ์ด์ผ๊ธฐ ํจ
3. ๋ธ๋ก๋ ์บ์คํธ
- ์ฐ์ฐ์ ๋์ผํ ์์น์ ์๋ ์์๋ค ๋ผ๋ฆฌ ์งํ
- np.multiply(a, b) : ํ๋ ฌ์ ๊ณฑ์ฒ๋ผ ๊ณฑ์ ์ด ์งํ๋๋๊ฒ ์๋๋ผ ๊ฐ ์์๋ณ ๊ณฑ์ ์ด ์งํ
- ๋ธ๋ก๋์บ์คํธ : ์๋ก ํฌ๊ธฐ๊ฐ ๋ค๋ฅธ array ๊ฐ ์ฐ์ฐ์ด ๊ฐ๋ฅํ๊ฒ๋ ํ๋ ๊ฒ
- vv = np.tile(v, (4,1)) : v์ ๋ณต์ฌ๋ณธ 4๊ฐ๋ฅผ ์ฐจ๊ณก์ฐจ๊ณก ์๋๋ค.
- ํ์ง๋ ์ด๋ ๊ฒ ํ์ง ์์๋ ์๋์ผ๋ก ๋ธ๋ก๋์บ์คํ ์ด ๋์ด ์ด์ ๊ฐ์๊ฐ ๊ฐ๋ค๋ฉด ์๋์ผ๋ก tile ๋์ด ์ฐ์ฐ๋๋ค.
4. ์ ์น ํ๋ ฌ
- ํ๊ณผ ์ด์ ๋ฐ๊พธ๋ ์ฐ์ฐ (x.T ๋ก ๊ณ์ฐ)
- ๋จ 1์ฐจ์ ๋ฐฐ์ด์ ์ ์น๋ฅผ ์ง์ํ์ง ์๊ธฐ ๋๋ฌธ์ reshape๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ํ๋ ฌ ๊ณฑ : np.dot(a, b)
- ํ๋ ฌ ์ด๊ฐ, ํ๊ฐ ํต๊ณ (row R col C)
- np.sum(a, axis=0) : ํ๊ฐ ์ฐ์ฐ, ์ฆ ๊ฐ์ ํ๋ผ๋ฆฌ ๋ํด์ง๊ธฐ ๋๋ฌธ์ (1, C) ๊ฒฐ๊ณผ๊ฐ ๋์ด
- np.sum(a, axis=1) : ์ด๊ฐ ์ฐ์ฐ, ์ฆ ๊ฐ์ ์ด๋ผ๋ฆฌ ๋ํด์ง๊ธฐ ๋๋ฌธ์ (R, 1) ๊ฒฐ๊ณผ๊ฐ ๋์ด
- np.prod(๊ณฑ) ์์ axis=0 ์ผ๋ก ํ๋ฉด ํ๊ฐ, ๊ฐ์ ํ๋ผ๋ฆฌ ๊ณฑํด์ง
ยง Pandas
1. ๋ฐ์ดํฐ ํ๋ ์ ๋ง๋ค๊ธฐ
- ์์
์ด๋ csv ํ์ผ์ฒ๋ผ ๊ฐ๋ก ์ธ๋ก ๋ฐ์ดํฐ ํต๊ณ๋ฅผ ๋ค๋ฃฐ ๋ ๊ฐ๊ณต ์ฒ๋ฆฌ ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- csv ์ excel ๊ณผ ํธํ์ด ์ ๋๋ค.
- header ์ ๋ฌด์ ์ฐจ์ด : ๋งจ ์ฒซ๋ฒ์งธ์ row ๊ฐ data ์ธ ๊ฒฝ์ฐ์๋ column title ์ด ์๊ธฐ ๋๋ฌธ์ header=None ์ด๋ผ๊ณ ์ฃผ์ด์ผ ํ๋ค.
- index_col = 0 ์ index column ์ ์ง์ฐ๋ผ๋ ์๋ฏธ
2. ์์ฝ ์ ๋ณด ํ์ธํ๊ธฐ
- head(), tail() : ์ / ๋ค์ (default) 5๊ฐ data ๋ณด์ฌ์ค
- info() : Dataframe์ rangeIndex์ ๊ฐ data type, memory usage๋ฅผ ์๋ ค์ค
- describe()
3. ์ด ๋ค๋ฃจ๊ธฐ
- dictionary ํํ๋ก ์ถ์ถ ๊ฐ๋ฅ (ํน์ data ์์๋ก๋ ๊ฐ๋ฅ) : df['์ด ์ด๋ฆ'] ์ผ๋ก ํธ์ถ/์์ฑ ๊ฐ๋ฅ. ํน์ df.c1 ํํ
- df.drop('์ด ์ด๋ฆ', axis =1 (์ด ์ง์ฐ๊ธฐ), inplace=True)
- inplace=True ๋ ์๋ณธ์ ์ ์ฉํ๋ผ๋ ์๋ฏธ
4. ํ ๋ค๋ฃจ๊ธฐ
- ํ์ ๋ฝ์ ๋์๋ iloc ์ ์ฌ์ฉํ๋ค. (i : index๋ก list ์์ ์ถ์ถ)
- ํน์ df.loc['r1'] ์ผ๋ก ์ถ์ถ ๊ฐ๋ฅ
- ๋ง์ฐฌ๊ฐ์ง๋ก df.drop ์ผ๋ก ์ง์ฐ๊ฒ ๋๋๋ฐ, axis=0 ์ผ๋ก ํด์ผํ๋ค.
5. ์์ ๋ค๋ฃจ๊ธฐ
- iloc ์ด์ฉํ๋ฉด ๊ฐ๋ฅ
6. ์ธ๋ถ ํ์ผ๋ก ์ ์ฅํ๊ธฐ
- df.to_csv ํน์ df.to_excel ๋ก ์ ์ฅ ๊ฐ๋ฅ
ยง Matplotlib
1. ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ํ๋ก ํํํ๊ธฐ
- df.plot(kind= ... ) ๋ก ํํ ๊ฐ๋ฅ
- 1๊ฐ์ column ์ ๋ํด์๋ง ๋ณด๋ ค๋ฉด df[''].plot() ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
- kind ์๋ bar, hist (ํ์คํ ๊ทธ๋จ), scatter ๋ฑ ์ฌ์ฉ ๊ฐ๋ฅ
- scatter ์ x, y๋ฅผ ์ค์ ํด์ฃผ์ด ๋ column ์ ์๊ด ๊ด๊ณ๋ฅผ ์ ์ ์์.
- box ๋ data ์ 50% ์ ํํํด์ฃผ๊ณ ์ ๋์ ๋ง๋๊ธฐ๋ 1.5 ๋ฐฐ ํํ
- ๊ทธ๋ฆผ์ผ๋ก๋ ์ ์ฅ ๊ฐ๋ฅ. (matplotlib.pyplot ์ import ํ์ฌ plt.savefig ์ฌ์ฉ)
2. ์ ํ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
- plt.plot(x, y, 'bo')
- plt.grid(True)
- plt.show()
3. ๋ ์ด๋ ์ฐจํธ
-
์ฌ์ฉํ data ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ
- df.columns.to_list() ๋ฅผ ์ด์ฉํด์ column ์ list๋ก ๋ณํ
- val1 = df.loc[0, :].drop('col').values.tolist()
- ๋ฐฉ์ฌํ์ ๊ทธ๋ฆด ๋ ์ฒ์ ์์์ ๊ณผ ๋ง์ง๋ง ์ ์ ์ด์ด์ฃผ์ด์ผ ํ๊ธฐ ๋๋ฌธ์ val1 ์ ๋งจ ์ฒ์ ๊ฐ์ ๋ง์ง๋ง์ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋ค.
- val1 += val1[:1]
- deg = [n / float(len(var)) * 2 * pi for n in range(len(var))]
-
ํํธ๋งต : plt.subplot(111, polar=True)
- 111 : ํ, ์ด, ์๋ฒ ์ฆ 1ํ1์ด ๊ทธ๋ํ ์ค ์ฒซ๋ฒ์งธ ๊ทธ๋ํ
- polar ์์ฑ : ๊ทธ๋ํ๊ฐ ๊ตฌํ์ผ๋ก ๋ณํ๋จ
- ๊ตฌํ ๊ทธ๋ํ์ ๋ฐ๊นฅ์ชฝ์ ๋๋ฌ์์ธ ๊ฒ์ xticks ์ด๊ณ ๋ด๋ถ ๊ฐ์ yticks
- plt.xticks(deg[:-1], var, color='grey', size=10)
- plt.ylim(0, 100) ๋ฒ์ ์ง์
- plt.yticks
- ax.set_rlabel_position(degree) : y๊ฐ์ ๋ํ label ์ ํํํด์ฃผ๋ ์์น ์ง์
-
๋ด์ฉ ์ฑ์ฐ๊ธฐ
- ax.plot(deg, val1, linewidth=..., linestyple=..., label=...) : ๊ทธ๋ํ ์ ์ ๊ทธ๋ ค์ฃผ๋ ์ญํ
- ax.fill : ์์ ์์ ์ฑ์์ฃผ๋ ์ญํ
- plt.legend (๋ฒ๋ก) (loc='best', bbox_to_anchor=(,) ์์น) : ๊ทธ๋ํ์ ๋ํ ์์ฝ ๋ด์ฉ์ ๋ฃ์ด์ฃผ๋ ์ญํ
๋ง์ง๋ง ์ธ๊ฐ