728x90
❤️ 배운 것
랜덤 추출
x_data = np.arange(1, 100, 20)
# [ 30 31 32 33 34 35 36 ... 129 ]
y_data = np.random.normal(loc=0, scale=1, size=(100,))
# [-1.23534830e-01 6.60085809e-01 3.97654598e-01 ... 1.92434361e+00]
s_arr = np.random.uniform(100, 500, n_data)
# [428.76156336 380.21144913 453.23103893 486.63004277 409.89904568, ... ]
- np.arange : 시작, 끝값(포함 안함), 띄는 간격(step) 으로 numpy 배열 생성
- np.random.normal(평균, 표준편차, 개수) 개수는 튜플형태로 작성, 정규분포로 랜덤 값 선택
- np.random.uniform: 시작, 끝 (includes low, but excludes high)
구간 추출
ylim = ax.get_ylim()
# (-1.1381864338303045, 2.4018017531553513)
yticks = np.linspace(ylim[0], ylim[1], 8)
# [-1.13818643 -0.63247384 -0.12676124 0.37895136 0.88466396 1.39037656, 1.89608916 2.40180175]
- ax.get_ylim: 최솟값, 최댓값을 튜플로 리턴
- np.linspace(시작, 끝, 개수): 시작~끝값에서 n개의 값을 추출 (evenly spaced numbers over a specified interval)
pie, sin
PI = np.pi
# 3.141592653589793
t = np.linspace(-4*PI, 4*PI, 300)
# [-12.56637061 -12.48231462 -12.39825863 ... ]
sin = np.sin(t)
# [ 4.89858720e-16 8.39570440e-02 1.67321246e-01 ... ]
삼각함수 시각화
def trigonometric_functions2():
PI = np.pi
t_ = np.linspace(-4*PI, 4*PI, 1000)
t = np.linspace(-4*PI, 4*PI, 1000).reshape(1, -1)
print(f"t_ shape :{t_.shape}, t shape : {t.shape}")
# t_ shape: (1000,) vector라는 의미 , t shape: (1, 1000) matrix라는 의미
sin = np.sin(t)
cos = np.cos(t)
tan = np.tan(t)
data = np.vstack((sin, cos, tan))
title_list = [r'$sin(t)$', r'$cos(t)$', r'$tan(t)$']
x_ticks = np.arange(-4*PI, 4*PI+PI, PI)
x_ticklabels = [str(i) + r'$\pi$' for i in range(-4, 5)]
fig, axes = plt.subplots(3, 1, figsize=(7, 10), sharex=True)
for ax_idx, ax in enumerate(axes.flat):
ax.plot(t.flatten(), data[ax_idx])
ax.set_title(title_list[ax_idx], fontsize=30)
ax.tick_params(labelsize=20)
ax.grid()
if ax_idx == 2:
ax.set_ylim([-3, 3])
fig.subplots_adjust(left=0.1, right=0.95, bottom=0.05, top=0.95)
axes[-1].set_xticks(x_ticks)
axes[-1].set_xticklabels(x_ticklabels)
legend 범례
ax.legend(fontsize=20, loc='upper right')
- 상하: upper, center, lower
- 좌우: left, center, right
- 최종-> upper right, center right 등
violin plot
클래스별로 분포를 확인하기에 용이한 차트
def violin_plot_test():
np.random.seed(0)
fig, ax = plt.subplots(figsize=(7, 7))
data1 = np.random.normal(0, 1, 100)
data2 = np.random.normal(5, 2, 200)
data3 = np.random.normal(13, 3, 300)
xticks = np.arange(3)
# ax.violinplot([data1, data2, data3], showmeans=True, positions=xticks)
violin = ax.violinplot([data1, data2, data3], positions=xticks,
quantiles=[[0.25, 0.75], [0.1, 0.9], [0.3, 0.7]])
ax.set_xticks(xticks)
ax.set_xticklabels(['setosa', 'versicolor', 'virginica'])
ax.set_xlabel('Species', fontsize=15)
ax.set_ylabel('Values', fontsize=15)
violin['bodies'][0].set_facecolor('blue')
violin['bodies'][1].set_facecolor('red')
violin['bodies'][2].set_facecolor('green')
violin['cbars'].set_edgecolor('gray')
violin['cmaxes'].set_edgecolor('gray')
violin['cmins'].set_edgecolor('gray')
💛 배운점/느낀점
- matplotlib의 fig, ax 객체 다루는 것이 익숙해진 것 같다.
- 휴일동안 선형대수와 통계학으로 배우는 머신러닝 with 파이썬 책의 머신러닝 부분까지 학습하였고(scikit-learn) 딥러닝 부분을 이어서 학습예정,
- dive into deep learning 교재로 pytorch 공부 시작하였음 (지금은 preliminaries 학습중)
❤️ 배운 것
반응형
'Education > 새싹 TIL' 카테고리의 다른 글
새싹 AI데이터엔지니어 핀테커스 5주차 (금) - Boxplot, Numpy (1) | 2023.10.06 |
---|---|
새싹 AI데이터엔지니어 핀테커스 5주차 (목) - matplotlib (3) (0) | 2023.10.05 |
새싹 AI데이터엔지니어 핀테커스 4주차 (금) - ML 관련 수학 (4) (0) | 2023.09.22 |
새싹 AI데이터엔지니어 핀테커스 4주차 (목) - ML 관련 수학 (3) (0) | 2023.09.21 |
새싹 AI데이터엔지니어 핀테커스 4주차 (수) - ML 관련 수학 (2) (0) | 2023.09.20 |