1-1. 헬로 파이썬

14563 단어 딥러닝딥러닝

이번 챕터에서는 파이썬, 넘파이 matplotlib에 대한 내용을 다룬다.
파이썬 부분은 건너뛰도록 하겠다!!

Numpy

  • 배열/행렬 계산
  • 넘파이의 배열 클래스인 numpy.array에는 편리한 메서드가 많아 딥러닝 구현할 때 많이 이용!

넘파이 가져오기

넘파이는 외부 라이브러리이기 때문에 사용하기 위해서는 import 해와야 한다.

import numpy as np

파이썬에서는 라이브러리를 읽기 위해서는 import 문을 사용해야 한다.
위의 코드는 numpy를 np라는 이름으로 가져오라는 뜻이다.


넘파이 배열 생성

np.array()
: 파이썬의 리스트를 인수로 받아 넘파이 라이브러리가 제공하는 특수한 형태의 배열(numpy.ndarray)을 반환한다.

>>> x = np.array([1.0, 2.0, 3.0])
>>> print(x)
[1. 2. 3.]
>>> type(x)
<class 'numpy.ndarray'>

넘파이 산술 연산

>>> x = np.array([1.0, 2.0, 3.0])
>>> y = np.array([2.0, 4.0, 6.0])
>>> x + y # 원소별(element-wise) 덧셈
array([3., 6., 9.])
>>> x - y 
array([-1., -2., -3.])
>>> x * y # elsement-wise product
array([2., 8., 18.])
>>> x / y 
array([0.5, 0.5, 0.5])

📌 배열 x와 y의 원소 수가 같아야 한다!

넘파이 배열은 원소별 계산뿐 아니라 넘파이 배열과 수치 하나(스칼라값)의 조합으로 된 산술 연산도 수행 가능!
➡️ 브로드캐스트 (아래에서 자세히 다루자)


넘파이의 N차원 배열

2차원 배열(행렬)을 작성해보자.

>>> A = np.array([[1, 2], [3, 4]]) # 2x2 행렬
>>> print(A)
[[1 2]
 [3 4]]
>>> A.shape # 행렬의 형상
(2, 2)
>>> A.dtype # 행렬에 담긴 원소의 자료형 
dtype('int64')

>>> B = np.array([[3, 0], [0, 6]]) 
>>> A + B
array([[ 4, 2],
 	   [ 3, 10])
>>> A * B
array([ 3, 0],
	  [ 0, 24]])
>>> A * 10
array([[ 10, 20]
	   [ 30, 40]])

형상: 행렬을 포함한 N차원 배열에서 그 배열의 '각 차원의 크기(원소의 수)' ➡️ shape으로 알 수 있다.
행렬에 담긴 원소형은 dtype으로 알 수 있다.

벡터(vector): 1차원 배열
행렬(matrix): 2차원 배열
텐서(tensor): 벡터와 행렬을 일반화한 것
이 책에서는 2차원 배열을 행렬, 3차원 이상의 배열을 다차원 배열이라고 한다.


브로드캐스트 (broadcast)

>>> x = np.array([1.0, 2.0, 3.0])
>>> x / 2.0
array([0.5, 1., 1.5])
>>> A = np.array([[1, 2], [3, 4]])
>>> B = np.array([10, 20])
>>> A * B
array([[ 10, 40],
	   [ 30, 80]])

원소 접근


matplotlib

단순한 그래프 그리기


pyplot의 기능


이미지 표시하기


정리

좋은 웹페이지 즐겨찾기