Numerical Python의 약자
파이썬 고성능 과학 패키지
일반 List에 비해 빠르고 효율적
for 문 없이 데이터 처리 가능, 선형대수학 기능 제공
c,c++와 같이해서 사용 가능!
conda로 패키지 이용가능
* Numpy Array
ndarray로 사용
import numpy as np
np로 사용하기
1 | test_array = np.array([1,4,5,8],float) # np 배열 생성 | cs |
# numpy array는 하나의 데이터 type만 배열에 넣을 수 있고 메모리 공간을 미리 차지해서 빠르다
1 | numpy.float64 # 데이터 공간 64 bit로 메모리 영역 설정가능 | cs |
python list는 주소를 가르키는 것에만 불과
numpy array는 직접 주소를 할당하고 공간을 사용하는 것
* Array Shape
Array shape - Vector, matrix, 3rd order tensor
3rd order는 깊이, 행, 열
ndim - number of dimension
size - data의 개수
1) Handling shape reshape
array의 size는 같지만 shape이 다른 경우가 종종 존재
(2,4) -> (1,8) 개수만 맞추면 된다!
y 값이 vector 형태로 들어오면 이를 matrix로 변환하는 경우 존재
1 2 | np.array(test_matrix).reshape(2,2,2) np.array(test_matrix).reshape(-1,2).shape | cs |
# -1은 size를 기반으로 row
2) flatten 다차원 array를 1차원 array로 변환
3) Indexing & Slicing
Indexing
[0,0] = [0][0]
Slicing
1 2 | a[:,2:] # 전체 Row의 2열 이상 a[1,1:3] # 1 Row의 1열 ~ 2열, 다양한 slicing 가능 | cs |
x:y:z (z는 몇 칸씩 뛰어 넘을 건지)
4) Arrange
array의 범위를 지정하여 값의 list를 생성
1 2 | np.arrange(30).reshape(-1,5) # 이렇게 사용 가능 np.arrange(0,5,1).to_list() # 0~5 범위 1칸씩 step | cs |
5) Ones, Zeros, Empty
Ones는 1로 초기화하는 배열, Zeros는 0으로 초기화, Empty는 빈공간
6) Something_like
7) identity
8) random sampling 데이터 분포에 따른 샘플링으로 데이터 Get
9) Axis 모든 operation function을 실행 시 기준이 되는 dimension축
array[2][3] 이라면 axis(0) = 3, axis(1) = 4
10) Concatenate 연결하기
Numpy array를 합치는 함수이다
axis 축 기준으로 합친다
vstack, hstack, concatenate(array1,array2, axis=0)
11) Operations b/t arrays
Numpy는 array 간의 기본적인 사칙 연산을 지원함
12) Dot product
13) transpose
****14) broadcasing - Shape이 다른 배열 간 연산 지원
1 2 | test_matrix + scalar # scalar가 3일 경우 원소에 다 더해버림 test_matrix + test_array # matrix와 vector 간의 연산도 지원 | cs |
15) 비교
1 2 3 4 5 | array>5 # 값 비교해서 원소 값으로 true, false 를 지닌 배열 반환 np.any(array>5) # 하나라도 크면 true 반환 np.all(array>5) # 원소 전부가 커야 true 반환 np.logical_and(a>0,a<3) # and 조건으로도 검사가능 np.where(a>0,3,2) # 0보다 큰 true는 3, false는 2로 배열 반환 **** | cs |
16) 최대최소
1 2 3 | np.argmax(array) # 최대값의 인덱스 값 반환 (5,0) np.argmin(array) # 최소값의 인덱스 값 반환 np.argmax(array, axis=1) # 축 1값을 기준으로 최대값 반환 | cs |
17) boolean index
where과 달리 index를 뽑는게 아닌 값을 뽑는다!
18) fancy index
numpy는 array를 index value로 사용해서 값을 추출
take 함수를 쓰는 것이 낫다!!!(덜 어려움)
'Archived(CSE Programming) > Machine Learning' 카테고리의 다른 글
Chap 5-3. Visualization & Handling (0) | 2019.02.20 |
---|---|
Chap 5-2. Pandas (0) | 2019.02.20 |
Chap 4. Machine Learning Overview & An understanding of data (0) | 2019.02.18 |
Chap 3. Assignment (0) | 2019.02.18 |
Chap 1~2. Pythonic Code (0) | 2019.02.18 |