프로그래밍/책

밑바닥부터 시작하는 딥러닝 1장

HanaTaba 2024. 7. 31. 21:00

클래스

class 클래스 이름:
	def __init__(self, 인수, ...):
    	...
	def 메서드 이름 1(self, 인수, ...):
    	...
	def 메서드 이름 2(self, 인수, ...):
    	...

 

개발자가 직접 클래스를 정의하면 독자적인 자료형을 만들 수 있다.

 

클래스에는 __init__라는 특별한 메서드가 있는데, 클래스를 초기화한다. 생성자라고도 부르며 클래스의 인스턴스가 만들어질 때 한 번만 호출된다. 또한 파이썬에서는 첫 번째 인수로 자신을 나타내는 self를 명시적으로 쓴다.


넘파이

import numpy as np

 

배열이나 행렬 계산에 도움을 주는 편리한 메소드를 가지고 있는 라이브러리이다.

 

x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0]) 

print(x + y)
print(x - y)
print(x * y)
print(x / y)
[1. 2. 3.]
[3. 6. 9.]   
[-1. -2. -3.]
[ 2.  8. 18.]

 

배열 생성 및 사칙연산이 가능하다.

 

브로드캐스트

A = np.array([[1, 2], [3, 4]])
B = np.array([10, 20])
print(A * B)
[[10 40]
 [30 80]]

 

형상이 다른 배열끼리도 계산 가능하다.

 

원소 접근과 인덱스

X = np.array([[51, 55], [14, 19], [0, 4]])
print(X)
print(X[0])
print(X[0][1])
[[51 55]
 [14 19]
 [ 0  4]]
 
[51 55]

55

 

2차원 배열을 사용하는 것처럼 사용 가능하다.

 

X = X.flatten() 
print(X)
print(X[np.array([0, 2, 4])])
print(X [X > 15])
[51 55 14 19  0  4]
[51 14  0]
[51 55 19]

 

.flatten()을 사용하여 1차원 배열로 변환(평탄화)한 이후 인덱스를 지정하여 원소를 얻거나 특정 조건을 통해 원소를 얻을 수 있다.


matplotlib

그래프(시각화) 라이브러리

 

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.image import imread

x = np.arange(0, 6, 0.1) # 0에서 6까지 0.1 간격으로 생성
y = np.sin(x)

plt.plot(x, y)
plt.show()

 

sin 그래프 시각화
sin 그래프 시각화


import numpy as np
import matplotlib.pyplot as plt
from matplotlib.image import imread

x = np.arange(0, 6, 0.1) # 0에서 6까지 0.1 간격으로 생성
y1 = np.sin(x)
y2 = np.cos(x)

plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle='--', label="cos") # cos 함수는 점선으로 그리기
plt.xlabel("x") # x축 이름
plt.ylabel("y") # y축 이름
plt.title('sin & cos') # 제목
plt.legend()
plt.show()

 

sin, cos 그래프 시각화
sin, cos 그래프 시각화


import matplotlib.pyplot as plt
from matplotlib.image import imread

img = imread('C:/Users/user/Desktop/coding/Deep_Learning_From_Scratch/고양이.jpg')

plt.imshow(img)
plt.show()

고양이 이미지 시각화
고양이 이미지 시각화

'프로그래밍 > ' 카테고리의 다른 글

밑바닥부터 시작하는 딥러닝 2장  (0) 2024.08.01