본문 바로가기

Archived(CSE Programming)/Machine Learning

Chap 5-1. Numpy

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