본문 바로가기
ML & DL/책 & 강의

[밑시딥 1] CHAPTER 1 헬로 파이썬

by 공부하는 무니 2023. 6. 5.
반응형

앞으로 파이썬을 사용하여 딥러닝 시스템을 구현할 것이기 때문에 파이썬에 대해 간략히 알아보자.

1.1 파이썬이란?

  • 프로그래밍 입문자에게 최적의 언어
    • 간단하고 배우기 쉬운 프로그래밍 언어
    • 오픈 소스라 무료로 자유롭게 이용 가능
  • 읽기 쉽고 성능도 뛰어남
  • 과학 분야, 특히 기계학습과 데이터 과학 분야, 딥러닝 프레임워크 에서 널리 쓰임
    • Scipy, Caffe, TensorFlow, Chaner, Theano 딥러닝 프레임워크들이 파이썬용 API를 제공
  • -> 따라서딥러닝을 밑바닥부터 만들기 달성하기 위한 언어로 선택

1.2 파이썬 설치하기

1.2.1 파이썬 버전

파이썬 3을 설치하자

1.2.2 사용하는 외부 라이브러리

  • 외부 라이브러리는 최소한만 사용해서 밑바닥부터 구현하는 것이 목표이지만, 라이브러리는 예외
    • numpy: 수치 계산용 라이브러리. 고도의 수학 알고리즘과 배열(행렬) 조작하는 메서드가 포함됨
    • matplotlib: 그래프를 그려주는 라이브러리. 실험결과를 시각화하거나 딥러닝 실행 과정의 중간 데이터를 시각적으로 확인 가능

1.2.3 아나콘다 배포판

 

Platform | Anaconda

Anaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.

www.anaconda.com

1.3 파이썬 인터프리터

파이썬 버전 확인

python --version

python 이라고 입력하면 파이썬 인터프리터가 실행된다.

파이썬 인터프리터: 개발자와 파이썬이 대화하듯 프로그래밍 할 수 있다.

1.3.1 산술 연산

1.3.2 자료형

자료형: 데이터의 성질을 나타내는 것

1.3.3 변수

파이썬은 동적 언어이다. 동적 언어: 변수의 자료형을 상황에 맞게 자동으로 결정한다.

1.3.4 리스트

1.3.5 딕셔너리

1.3.6 bool

and, or, not 연산자 사용 가능

1.3.7 if 문

탭이나 스페이스 4개로 들여쓰기 잘 하기

1.3.8 for문

1.3.9 함수

파이썬 인터프린터 종료는 

- 리눅스, : ctrl + D

- 윈도우: ctrl + Z + Enter

1.4 파이썬 스크립트 파일

긴 작업을 수행해야 하고 반복적이라면 인터프리터에 직접 입력하는 것은 불편하다. 따라서 파이썬 프로그램을 파일로 저장하고, 그 파일을 함께 실행해야 한다.

1.4.1 파일로 저장하기

텍스트 편집기를 열고 아래와 같은 hungry.py 파일을 작성

터미널에서 작성한 파일이 있는 디렉토리로 이동한 후, python hungry.py 하면 프로그램이 실행된다.

1.4.2 클래스

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

1.5 넘파이

딥러닝을 구현하다보면 배열이나 행렬 계산이 많이 필요하다.

넘파이: 배열 클래스 numpy.array에 편리한 메서드가 많이 준비되어 있다

1.5.1 넘파이 가져오기

넘파이는 외부 라이브러리이기 때문에, 가져와야(import) 한다.

1.5.2 넘파이 배열 생성하기

넘파이 배열을 만들 때는 np.array() 메서드를 이용한다.

NumPy의 배열은 주황색으로 표시된 파이썬의 리스트에 비하여 처리속도가 매우 빠름을 알 수 있다. 

넘파이 배열은 파이썬 리스트와 달리 하나의 타입만 저장되어있도록  설계되었기 때문에 Random Access가 가능해진다. 

또한 주된 처리를 C, C++로 구현해서 그냥 파이썬 코드보다 훨씬 빠르다.

참고: https://dkswnkk.tistory.com/323

 

[python] List보다 Numpy 가 빠른 이유

'리스트보다 NumPy의 배열이 훨씬 빠르다' 먼저 파이썬의 리스트는 여러 개의 값들을 저장할 수 있는 자료구조로서 강력하고 활용도가 높다. 리스트는 다양한 자료형의 데이터를 여러 개 저장할

dkswnkk.tistory.com

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

1.5.3 넘파이의 산술연산

연산을 하는 배열 x, y의 원소 수가 같다면 element-wise하게 산술 연산이 적용된다.

넘파이 배열과 스칼라값의 계산도 가능

1.5.4 넘파이의 N차원 배열

넘파이는 다차원 배열도 작성 가능

shape이 같은 행렬끼리는 산술연산도 원소별로 계산됨

스칼라값 계산도 가능

1.5.5 브로드캐스트

브로드캐스트: 넘파이에서 shape이 다른 배열끼리 계산할 때 shape을 알아서 맞춰서 연산하는 기능

앞에서 봤던 스칼라 계산

다른 예시를 살펴보자

1.5.6 원소 접근

1.6 matplotlib

matplotlib를 사용하면 그래프 그리기와 데이터 시각화가 쉬워진다.

1.6.1 단순한 그래프 그리기

matplotlib의 pyplot 모듈을 사용하여 그래프를 그릴 수 있다.

1.6.2 pyplot의 기능

pyplot에는 제목, 각 축의 레이블 표시 등 기능이 많다

1.6.3 이미지 표시하기

1.7 정리

딥러닝을 배우기 위해 필요한 파이썬에 대해 최소한으로만 배워보았다.

  • 파이썬은 간단하고 익히기 쉬운 프로그래밍 언어다.
  • 파이썬은 오픈 소스여서 자유롭게 사용할 있다.
  • 책은 딥러닝 구현에 파이썬3 버전을 이용한다.
  • 외부 라이브러리로는 넘파이와 matplotlib 이용한다.
  • 파이썬을 실행하는 방식에는인터프리터스크립트 파일 가지가 있다.
  • 파이썬에서는 함수와 클래스 같은 모듈로 구현을 정리할 있다.
  • 넘파이는 다차원 배열을 다루는 편리한 메서드를 많이 제공한다.
반응형

댓글