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 학습중)

 

 

❤️ 배운 것

반응형