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
https://www.boostcourse.org/ai100/lecture/739178?isDesc=false
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 언어
적절한 패키지를 활용하는 건 좋은 방법
파이썬 과학 처리 패키지
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
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
'머신러닝,딥러닝 > numpy 강의&프리코스' 카테고리의 다른 글
pandas 판다스 dataframe에서 원하는 칼럼만 사용하기 (0) | 2022.08.20 |
---|---|
week_0 pandas 작업하면서 참고한 사이트 (0) | 2022.07.18 |
week_0 pandas 공부하면서 해결한 문제 몇 가지 (0) | 2022.07.18 |
starting conda & jupyter notebook on mac (0) | 2021.12.07 |
numpy 필기 끝 8. boolean 9. fancy index 10. data i/o (0) | 2021.06.14 |
numpy 8. array op 9. comparisons (0) | 2021.06.14 |
numpy 필기 6. creation 7. operation functions (0) | 2021.06.14 |
numpy 공부 필기 3. handling space 4. index 5. slice (0) | 2021.06.14 |