머신러닝,딥러닝/numpy 강의&프리코스

numpy 공부 필기 1. numpy 2. ndarray

mcdn 2021. 6. 14. 16:37
반응형

Numerical Python - Numpy

 

학습 목표

 

이번 강의에서는 파이썬의 과학 계산용 패키지인 numpy 의 여러 특징과 기능, 코드를 작성하는 방법 등을 배웁니다. 

  • numpy
  • ndarray (이 글 범위)
  • Handling shape
  • Indexing
  • Slicing
  • Creation function
  • Operation functions
  • array operations
  • Comparisons
  • Boolean Index
  • Fancy Index
  • numpy data i/o

강의 영상

Numerial Python - numpy
Data handling section

https://blog.naver.com/boostcamp_official/222345119688

 

부스트캠프 AI Tech 2기 자가 진단 문항

부스트캠프 AI Tech 2기 자가 진단! Do you have a DNA of AI engineer? 지금, AI 엔지니어의 ...

blog.naver.com

https://www.boostcourse.org/ai100/lecture/739178?isDesc=false 

 

[AI Tech Pre-course] 인공지능(AI) 기초 다지기

부스트코스 무료 강의

www.boostcourse.org

 

 

Director of TEAMLAB
Sungchul Choi

어떻게 수식을
코드로 표현할 것인가?

코드로 방정식 표현하기
2𝑥# + 2𝑥% + 𝑥& = 9
2𝑥# − 𝑥% + 2𝑥& = 6
𝑥# − 𝑥% + 2𝑥& = 5

2 2 1 9
2 −1 2 6
1 −1 2 5

coefficient_matrix = [[2, 2, 1], [2, -1, 2], [1, -1, 2]]
constant_vector = [9,6,5]

코드로 방정식 표현하기
coefficient_matrix = [[2, 2, 1], [2, -1, 2], [1, -1, 2]]
constant_vector = [9,6,5]

- 다양한 Matrix 계산을 어떻게 만들 것 인가?
- 굉장히 큰 Matrix에 대한 표현
- 처리 속도 문제 – 파이썬은 Interpreter 언어
적절한 패키지를 활용하는 건 좋은 방법

 

부스트캠프 AI Tech 2기 자가 진단 문항

부스트캠프 AI Tech 2기 자가 진단! Do you have a DNA of AI engineer? 지금, AI 엔지니어의 ...

blog.naver.com

 

 


파이썬 과학 처리 패키지
Numpy


Numpy
- Numerical Python
- 파이썬의 고성능 과학 계산용 패키지
- Matrix와 Vector와 같은 Array 연산의 사실상의 표준
- 한글로 넘파이로 주로 통칭, 넘피/늄파이라고 부르기도 함
https://www.facebook.com/groups/pythonkorea/permalink/955390924544069/

Numpy 특징
- 일반 List에 비해 빠르고, 메모리 효율적
- 반복문 없이 데이터 배열에 대한 처리를 지원함
- 선형대수와 관련된 다양한 기능을 제공함
- C, C++, 포트란 등의 언어와 통합 가능

References
- cs231 - http://cs231n.github.io/python-numpy-tutorial/#numpy
https://docs.scipy.org/doc/numpy-dev/user/quickstart.html
- 데이터 사이언스 스쿨 (파이썬 버전) - https://goo.gl/3hsjbS
- Numpy - https://goo.gl/7Nwjvv
- 파이썬 라이브러리를 활용한 데이터 분석

Numpy Install
activate ml_scratch
conda install numpy
- Windows 환경에선 conda로 패키지 관리 필요
(C 패키지 핸들링 등)
- jupyter 등을 설치한 상태에서는 추가 설치 필요 없음

 

난 그냥 google colab으로 함

 


ndarray

 

import
import numpy as np

- numpy의 호출 방법
- 일반적으로 numpy는 np라는 alias(별칭) 이용해서 호출함
- 특별한 이유는 없음 세계적인 약속 같은 것

 

 

Array creation
test_array = np.array([1, 4, 5, 8], float)
print(test_array)
type(test_array[3])

- numpy는 np.array 함수를 활용하여 배열을 생성함 è ndarray
- numpy는 하나의 데이터 type만 배열에 넣을 수 있음
- List와 가장 큰 차이점, Dynamic typing not supported
- C의 Array를 사용하여 배열을 생성함

 

C의 배열을 사용한다고 하는 걸 보니 중간에 크기 형태를 바꾸는 것이 불가능하다는 소리인듯 

 



Array creation

test_array = np.array([1,4,5,8], float)

test_array 

-> array([1., 4., 5., 8.,])

 

type(test_array[3])

numpy.float64

 

14pg


Array creation

https://jakevdp.github.io/blog/2014/05/09/why-python-is-slow/

Array creation

 



https://www.slideshare.net/enthought/numpy-talk-at-siam

 

Array creation
test_array = np.array([1, 4, 5, "8"], float)
# String Type의 데이터를 입력해도

print(test_array)
print(type(test_array[3]))
# Float Type으로 자동 형변환을 실시

print(test_array.dtype)
# Array(배열) 전체의 데이터 Type을 반환함

print(test_array.shape)
# Array(배열) 의 shape을 반환함

- shape : numpy array의 object의 dimension 구성을 반환함
- dtype : numpy array의 데이터 type을 반환함

 


https://docs.scipy.org/doc/numpy/reference/arrays.scalars.html#arrays-scalars-built-in

Array creation

 

 

Array shape (vector)

- Array (vector, matrix, tensor)의 크기, 형태 등에 대한 정보

(type : tuple)

Reference - https://www.slideshare.net/PyData/introduction-to-numpy

 

Array shape (matrix)

ndarray의 shape
(type : tuple)

Reference - https://www.slideshare.net/PyData/introduction-to-numpy

 

Array shape (3rd order tensor)

Reference - https://www.slideshare.net/PyData/introduction-to-numpy

 

Array shape – ndim & size
- ndim – number of dimension
- size – data의 개수

 

 



Array dtype

 

- Ndarray의 single element가 가지는 data type
- 각 element가 차지하는 memory의 크기가 결정됨

Data type을 integer로 선언
Data type을 float로 선언
Reference - https://www.slideshare.net/PyData/introduction-to-numpy

Array dtype

- C의 data type과 compatible


https://www.slideshare.net/enthought/numpy-talk-at-siam

 

 

Array dtype

- nbytes – ndarray object의 메모리 크기를 반환함

32bits = 4bytes è 6 * 4bytes

8bits = 1bytes è 6 * 1bytes

64bits = 8bytes è 6 * 48bytes

 

 

반응형