Chapter1 파이썬
1. 파이썬
- 파이썬은 과학 분야, 특히 기계학습과 데이터 과학 분야에서 널리 쓰임
- 파이썬은 동적 언어로 분류되는 프로그래밍 언어
- 변수의 자료형을 상황에 맞게 자동으로 결정한다는 뜻
1) 슬라이싱
- 파이썬 리스트에는 슬라이싱이라는 편리한 기법이 있음
a=[1, 2, 3, 4, 5]
a[0:2]
[1, 2]
a[:-1]
[1, 2, 3, 4]
2) 클래스
- 개발자가 직접 클래스를 정의하여 독자적인 자료형을 만들 수 있음
- 클래스 정의하는 방법
- 파이썬에서는 메서드의 첫번째 인수로 자신을 나타내는 self를 명시적으로 쓰는 것이 특징
class 클래스이름:
def __init__(self, 인수, ...): #__init__은 초기화용 메소드. 생성자라고도 함
...
def 메서드 이름1(self, 인수, ...):
...
def 메서드 이름2(self, 인수, ...):
...
2. 넘파이
- 넘파이는 수치 계산용 라이브러리
- 넘파이는 외부 라이브러리로 import를 해줘야 함
import numpy as np
x=np.array([1.0, 2.0, 3.0])
print(x)
type(x)
[1. 2. 3.]
numpy.ndarray
1) 넘파이의 산술 연산
- 배열 x와 y의 원소 수가 같을 때 -> 각 원소에 대해서 행해짐
- 원소별(element-wise) 연산
x=np.array([1.0, 2.0, 3.0])
y=np.array([2.0, 4.0, 6.0])
x+y #원소별 연산
array([3., 6., 9.])
- 배열 x와 스칼라의 연산(원소 수가 같지 않을 때)
- 스칼라 값과의 계산이 넘파이 배열의 원소별로 한 번씩 수행됨
- ->브로드캐스팅
x=np.array([1.0, 2.0, 3.0])
x/2.0
(2, 2)
A.dtype
dtype('int32')
A+B
array([[ 4, 2],
[ 3, 10]])
A*B
array([[ 3, 0],
[ 0, 24]])
A*10
array([[10, 20],
[30, 40]])
+ 더 알아보기 수학에서는 1차원 배열은 벡터(vector), 2차원 배열은 행렬(matrix), 또 벡터와 행렬을 일반화한 것을 텐서(tensor) 라고 한다. 구글의 딥러닝 프레임워크인 텐서플로의 이름이 여기서 유래했다.
3) 브로드캐스트
- 행렬에 스칼라 값을 연산할 때, 스칼라 값이 행렬의 형상만큼 확대된 후 연산이 이루어짐
A=np.array([[1, 2], [3, 4]])
B=np.array([10, 20])
A*B
array([[10, 40],
[30, 80]])
3. 맷플롯립(matplotlib)
- matplotlib은 그래프를 그려주는 라이브러리
그래프 그리기
- 그래프를 그리려면 matplotlib의 pyplot 모듈을 이욯
import numpy as np
import matplotlib.pyplot as plt
#데이터 준비
x=np.arange(0, 6, 0.1)
y=np.sin(x)
#그래프 그리기
plt.plot(x, y)
plt.show()
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")
plt.plot(x, y2, linestyle="--", label="cos")
plt.xlabel("x")
plt.xlabel("y")
plt.title('sin & cos')
plt.legend()
plt.show()
'Deep Learning' 카테고리의 다른 글
논문 읽는 법 (0) | 2021.07.26 |
---|---|
윈도우에 PyTorch 설치, 가상환경 만들기, GPU 설정 (0) | 2021.07.03 |
[딥러닝 입문] Ch2. 딥러닝을 위한 구글코랩,넘파이,matplotlib (0) | 2021.06.29 |
[딥러닝 입문] Ch1. 인공지능과 머신러닝의 개요 (0) | 2021.06.29 |
tesorflow에서 convnet 전이학습 시키기 (0) | 2021.05.31 |