일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- summarise( )
- convolution 역전파
- 네이버커넥트
- 네이버커넥트재단
- LinearNeuralNetwork
- col_names
- JavaScript
- r
- dplyr
- 역전파알고리즘
- RNN
- 정규표현식
- group_by( )
- Multi-Layer Perceptron
- 부스트캠프aitech3기
- aitech
- 모각공
- mutate( )
- Filter
- NomadCoder
- 부스트캠프 aitech3기
- regex
- 부스트캠프
- 자바스크립트
- Beyond Linear Neural Networks
- 베이즈통계학
- 생활코딩
- regular expression
- Convolution
- Sequential Model
- Today
- Total
clear_uncertainty
네이버 부스트캠프 모각공 캠페인 5일차 - Numerical Python - numpy 본문
네이버 부스트캠프 모각공 캠페인 5일차 - Numerical Python - numpy
SOidentitiy 2021. 11. 12. 23:25
모든 설명 및 자료의 출처는 네이버 부스트코스의 <[부스트캠프 AI Tech 3기] Pre-Course>입니다.
(https://www.boostcourse.org/onlyboostcampaitech3/joinLectures/329424)
<꼭 알아야하는 파이썬 기초 지식>
Numerical Python - numpy
어떻게 행렬과 매트릭스를 코드로 표현할 수 있는가?
위 방식의 문제점
-다양한 Matrix 계산을 어떻게 만들 것 인가?
-굉장히 큰 Matrix에 대한 표현
-처리 속도 문제 - python 은 Interoreter 언어 > 따라서 속도가 느립니다.
→해결 방안: 적절한 패키지의 활용 : numpy
numpy
Numerical Python
파이썬의 고성능 과학 계산용 패키지
Matrix와 Vector와 같은 Array 연산의 사실상의 표준
일반 List에 비해 빠르고, 메모리 효율적
반복문없이 데이터 배열에 대한 처리를 지원
선형대수와 관련된 다양한 기능을 제공
C, C++ 포트란 등의 언어와 통합 가능
↑numpy 호출 방법
일반적으로 numpy 는 np라는 alias(별칭)를 이용하여 호출 , 특별한 이유없이, 세계적인 약속
array creation
numpy는 np.array 함수를 활용 배열을 생성합니다. → ndarray
numpy는 하나의 데이터 type만 배열에 넣을 수 있습니다.
List와 가장 큰 차이점 → dynamic typing not supported / dynamic typing 은 파이썬의 가장 큰 특징
C의 Array를 사용하여 배열을 생성합니다.
Python List는 주소값을 List에 할당합니다. 따라서 List의 변형이 쉽습니다.
Numpy Array는 데이터가 차례대로 메모리의 공간에 할당됩니다.
shape : numpy array 의 dimension 구성을 반환함
dtype : numpy array의 데이터 type을 반환함
array 의 RANK에 따라 불리는 이름이 있음
shape : array의 크기, 형태 등에 대한 정보
ndim: number of dimension
size: data의 개수
numpy는 list와 달리 dynamic typing이 지원되지않기때문에 dtype(data type)를 통해 선언해줘야합니다.
nbytes : ndarray object 의 메모리 크기를 반환
Handling shape
reshape : Array의 shape의 크기를 변경합니다. element의 갯수는 동일합니다.
flatten : 다차원 array를 1차원 array로 변환
indexing for numpy array
list와 달리 이차원 배열에서 [0,0] 표기법을 제공합니다.
matrix일 경우 앞은 row 뒤는 column을 의미합니다.
a[0,2] = 10
위의 코드를 입력하면 3이 10으로 할당됩니다.
slicing for numpy array
list와 달리 행과 열 부분을 나눠서 slicing 이 가능합니다.
matrix의 부분 집합을 추출할 때 유용합니다.
creation function
arange : array의 범위를 지정하여, 값의 list를 생성하는 명령어 = List의 range 효과
zeros 0으로 가득찬 ndarray 생성
ones 1로 가득찬 ndarray 생성
empty shape만 주어지고 비어있는 ndarray 생성 ( memory initialization 이 되지 않음)
something_like 기존 ndarray의 shape 크기 만큼 1, 0 또는 empty array를 반환
identity 단위 행렬(i 행렬)을 생성함
eye 대각선인 1인 행렬, k 값의 시작 index의 변경이 가능 / identity 와 다르게 시작하는 지점을 변경 가능
diag 대각 행렬의 값을 추출
random sampling 데이터 분포에 따른 sampling 으로 array 생성
np.random.normal 정규분포 추가설명(https://numpy.org/doc/stable/reference/random/generated/numpy.random.normal.html)
Draw random samples from a normal (Gaussian) distribution.
The probability density function of the normal distribution, first derived by De Moivre and 200 years later by both Gauss and Laplace independently, is often called the bell curve because of its characteristic shape (see the example below).
The normal distributions occurs often in nature. For example, it describes the commonly occurring distribution of samples influenced by a large number of tiny, random disturbances, each with its own unique distribution.
operation function
sum ndarray의 element 들 간의 합을 구함, list의 sum 기능과 동일
axis 모든 operatoin function 을 실행할 때 기준이 되는 dimension
mean & std ndarray들 간의 평균 또는 표준편차를 반환
concatenate numpy array 를 합치는(붙이는) 함수
array operations
Operations b/t arrays: numpy는 array 간의 기본적인 사칙 연산을 지원함
Dot product : Matrix 의 기본 연산, dot 함수 사용 / 행렬간의 곱셈
transpose : transpose 또는 T attribute 사용 (전치함수)
boradcasting : Shape이 다른 배열 간 연산을 지원하는 기능
Numpy performance
timeit: jupyter 환경에서 코드의 퍼포먼스를 체크하는 함수
일반적으로 속도는 for loop < list comprehension < numpy
100,000,000 번의 loop이 돌 때 약, 4배 이상의 성능 차이를 보임
Numpy 는 C로 구현되어 있어 성능을 확보하는 대신, 파이썬의 가장 큰 특징인 dynamic typing 을 포기
대용량 계산에서는 가장 흔히 사용
Concatenate 처럼 계산이 아닌 할당에서는 연산 속도의 이점이 없음
comparisons : numpy array 간의 비교
All & Any Array 의 데이터 전부 또는 일부가 조건 만족 여부 반환
numpy는 배열의 크기가 동일 할 때 element간 비교의 결과를 Boolean type으로 반환
argmax & argmin
argmax array 내 최댓값 index 반환
argmin array 내 최솟값 index 반환
axis 기반의 반환
boolean index
특정 조건에 따른 값을 배열 형태로 추출
Comparison operation 함수들도 모두 사용가능
fancy index
numpy는 array 를 index value 로 사용해서 값 추출
numpy data i/o
loadtxt & savetxt
text type 의 데이터를 읽고(loadtxt), 저장하는 기능(savetxt)
출처
'네이버 부스트캠프 - AI Tech 3rd > 꼭 알아야하는 파이썬 기초지식' 카테고리의 다른 글
네이버 부스트캠프 모각공 캠페인 7일차 - Pandas(2) (0) | 2021.11.16 |
---|---|
네이버 부스트캠프 모각공 캠페인 6일차 - Pandas (0) | 2021.11.14 |
네이버 부스트캠프 모각공 4일차 - Python Data Handling (0) | 2021.11.11 |
네이버 부스트캠프 모각공 3일차 - File/Exception/Log Handling (0) | 2021.11.10 |
네이버 부스트캠프 모각공 캠페인 3일차 - Module and Project (0) | 2021.11.10 |