밑바닥부터 시작하는 딥러닝 Chapter 01. 헬로 파이썬
본 포스팅은
「밑바닥부터 시작하는 딥러닝 - 사이토 고키, 한빛미디어」라는 서적을 참고하였으며,
작성자가 공부한 내용을 기록하는 목적으로 작성하였습니다.
1.3.1 산술연산
- 사칙연산(+, -, *, /)
- 거듭제곱(**)
*파이썬2에서는 정수끼리 계산한 결과는 정수(ex. 7÷5의 결과는 1)
*파이썬3에서는 정수를 나눈 결과는 실수(부동소수점)
1.3.2 자료형
- type() 을 사용하여 특정 데이터 자료형을 확인 가능하다.
type(10) -> <class 'int'> 정수
type(2.718) -> <class 'float'> 실수
type("hello") -> <class 'str'> 문자열
1.3.3 변수
변수의 정의 :
x = 10
y = 3.14
print(x)
1.3.4 리스트
a = [1, 2, 3, 4, 5] 리스트 생성
len(a) -> 5 리스트 길이 확인
a[0] -> 1 리스트 인덱스를 활용한 색인
a[4] -> 5
a[4] = 99 리스트 인덱스를 활용한 데이터 수정
print(a) -> [1, 2, 3, 4, 99]
print(a[1:]) -> [2, 3, 4, 99] 리스트 슬라이싱을 통한 부분 추출
print(a[:3]) -> [1, 2, 3]
print(a[:-1]) -> [1, 2, 3, 4] 리스트의 마지막 원소의 인덱스는 '-1'
print(a[:-2]) -> [1, 2, 3]
1.3.5 딕셔너리
me = {'height' : 100}
me['height'] -> 180
me['weight']
print(me) -> {'weight': 70, 'height': 180}
1.3.6 Bool(Boolean)
hungry = True
sleepy = False
type(hungry) -> <class 'bool'>
not hungry -> False
hungry and sleepy -> False
hungry or sleepy -> True
1.3.7 If문
hungry = True
if hungry :
print("I'm hungry") -> I'm hungry
hungry = False
if hungry :
print("I'm hungry")
else :
print ("I'm not hungry")
print ("I'm sleepy") -> I'm not hungry
I'm sleepy
1.3.8 for문
for i in [1, 2, 3]:
print(i)
1
2
3
1.3.9 함수
def hello():
print("Hello World!")
hello() -> Hello World!
함수에 인수넣어 적용하기
def hello(object):
print("Hello " + object + "!")
hello("cat") -> Hello cat!
1.4.2 클래스
class 클래스 이름:
def __init__(self, 인수, ...): # 생성자(Constructor) : 클래스 초기화하는 방법 정의
...
def 메서드 이름1(self, 인수, ...): # 메서드1
...
def 메서드 이름1(self, 인수, ...): # 메서드2
...
class Man:
def __init__(self, name): # Man의 생성자는 name이라는 인수를 받고
self.name = name # 받은 인수 name으로 인스턴스 변수인 self.name 초기화 *인스턴스 변수 : 인스턴스별로 저장되는 변수
print("Initialized")
def hello(self):
print("Hello" + self.name + "!")
def goodbye(self):
print("Good-bye" + self.name + "!")
m = Man("David")
m.hello()
m.goodbye()
1.5.3 넘파이(Numpy) 배열 생성/산술 연산
>>> import numpy as np # 라이브러리 가져오기
>>> y = np.array([2.0, 4.0, 6.0])
>>> x = np.array([1.0, 2.0, 3.0])
>>> x+y
array([3., 6., 9.])
>>> x-y
array([-1., -2., -3.])
>>> x*y
array([ 2., 8., 18.])
>>> x/y
array([0.5, 0.5, 0.5])
*넘파이 연산시 원소 수가 동일해야 한다.
*원소별(element-wise)
*넘파이 배열과 수치 하나(스칼라값)의 조합으로 된 산술연산 : 브로드캐스트
1.5.4 넘파이의 N차원 배열
>>> A = np.array([[1,2], [3,4]])
>>> print(A)
[[1 2]
[3 4]]
>>> A.shape 행렬의 형상
(2, 2)
>>> A.dtype 행렬에 담긴 원소의 자료형
dtype('int32')
# 넘파이 배열간 산술연산
>>> B = np.array([[3,0], [0, 6]])
>>> A+B
array([[ 4, 2],
[ 3, 10]])
>>> A*B
array([[ 3, 0],
[ 0, 24]])
# 넘파이 배열의 브로드캐스트
>>> print(A)
[[1 2]
[3 4]]
>>> A*10
array([[10, 20],
[30, 40]])
여기서 10은 연산될 때 아래와 같은 배열로 변환되어 연산된다.
[[ 10, 0],
[ 0, 0]]
1.5.5 브로드캐스트
>>> A = np.array([[1,2], [3,4]])
>>> B = np.array([10,20])
>>> A*B
array([[10, 40],
[30, 80]])
여기서 배열 B는 아래와 같은 배열로 변환되어 연산된다.
[[10, 20],
[ 0, 0]]
1.5.6 원소 접근
원소에 대한 접근은 인덱스를 활용한다.
>>> X = np.array([[51, 55], [14, 19], [0, 4]])
>>> print(X)
[[51 55]
[14 19]
[ 0 4]]
>>> X[0]
array([51, 55])
>>> X[0][1]
55
# for 문으로 각 원소에 접근할 경우
>>> for row in X:
... print(row)
...
[51 55]
[14 19]
[0 4]
# 배열 평탄화
>>> Y = X.flatten()
>>> print(Y)
[51 55 14 19 0 4]
# 인덱스가 0, 2, 4인 원소 얻기
>>> Y[np.array([0, 2, 4])]
array([51, 14, 0])
1.6.1 Matplotlib 단순한 그래프 그리기
sin함수 그래프 그리기
>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>>
>>> x = np.arange(0, 6, 0.1)
>>> y = np.sin(x)
>>>
>>> plt.plot(x, y) # 그래프 그리기
[<matplotlib.lines.Line2D object at 0x00000227EAB31ED0>]
>>> plt.show()
1.6.2 Matplotlib pyplot의 기능
sin함수와 cos함수 그래프 그리기
>>> import numpy as np
>>> import matplotlib.pyplot as plt
데이터 준비
>>> x = np.arange(0, 6, 0.1)
>>> y1 = np.sin(x)
>>> y2 = np.cos(x)
그래프 그리기
>>> plt.plot(x, y1, label='sin')
[<matplotlib.lines.Line2D object at 0x00000227EDF468C0>]
>>> plt.plot(x, y2, linestyle="--", label='cos') # cos 함수는 점선으로 그리기
[<matplotlib.lines.Line2D object at 0x00000227EDF46F50>]
>>> plt.xlabel("x") # x축 이름
Text(0.5, 0, 'x')
>>> plt.ylabel("y") # y축 이름
Text(0, 0.5, 'y')
>>> plt.title('sin & cos') # 제목
Text(0.5, 1.0, 'sin & cos')
>>> plt.legend() # legend 표시
<matplotlib.legend.Legend object at 0x00000227EDF46CB0>
>>> plt.show() # 그래프 출력
1.6.3 이미지 표시하기
>>> import matplotlib.pyplot as plt
>>> from matplotlib.image import imread
>>>
>>> img = imread('cactus.png') # 현재 경로에 저장된 cactus.png 파일을 읽어오기
>>>
>>> plt.imshow(img) # 이미지 표시
<matplotlib.image.AxesImage object at 0x00000227EDFBFD60>
>>> plt.show() # 좌표평면이 표시되는 결과창 표시
반응형
'DataScience > 딥러닝' 카테고리의 다른 글
딥러닝 :: 밑바닥부터 시작하는 딥러닝 Chap3. 신경망 (0) | 2023.05.03 |
---|---|
딥러닝 :: 밑바닥부터 시작하는 딥러닝 Chap2. 퍼셉트론 (0) | 2023.05.02 |
딥러닝 :: 11월 셋째주 WIL #12 (0) | 2022.11.18 |
딥러닝 :: OpenCV를 활용한 영상 처리, 도커 복습_TIL54 (0) | 2022.11.18 |
딥러닝 :: OpenCV, Style Transfer를 활용한 이미지 처리_TIL53 (0) | 2022.11.18 |
댓글