[Python]Numpy array관련 주요 함수 정리

isitcake_yes·2022년 10월 13일
post-thumbnail

🍏 배열의 크기, 차원, 길이 확인

import numpy as np
A = np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])

* 배열의 모양, 몇행 몇열인지

A.shape
(4,3)

* 배열의 전체 원소 수

A.size
12

* 배열의 행의 수

len(A)
4

* 배열의 차원 확인

A.ndim
2


🍎 배열 생성

* 0으로 채워진 배열 (np.zeros)

np.zeros([2,3])
>> array([[0., 0., 0.],
         [0., 0., 0.]])

* 1로 채워진 배열 (np.ones)

np.ones([2,3])
>> array([[1., 1., 1.],
         [1., 1., 1.]])

* 특정값으로 채워진 배열 (np.full)

np.full([2, 3], 2.5)
>> array([[2.5, 2.5, 2.5],
         [2.5, 2.5, 2.5]])


🍏 배열에서 nan값 제거 및 변경

R = np.array([ 
    [5,4,4,np.nan,np.nan], 
    [np.nan,3,5,np.nan,4],
])
# R.shape : (2,5)

* nan값 제거 (np.isnan)

R_new = R[~np.isnan(R)]
print(R_new, R.shape) 
# [5. 4. 4. 3. 5. 4.] (6,) 

* nan값 변경 (np.nan_to_num)

R_new = np.nan_to_num(R)
print(R_new, R.shape) 
#[[5. 4. 4. 0. 0.] [0. 3. 5. 0. 4.]] (2, 5) 


🍎 배열의 index값 추출

A = np.array([
	[np.nan,10,20],
    [30,40,50]
])

* 특정값을 가진 index추출 (np.argwhere)

nan_index = np.argwhere(np.isnan(A)) # nan인 index추출
print(nan_index)  # [[0 0]]
print(np.argwhere(a == 5)) # [[1 2]]

* 최소 최대 index추출 (np.argmin, np.nanargmin, np.argmax, np.nanargmax)

# argmin, argmax : nan값 포함, nan이 최대, 최소
np.argmin(A) # 0
np.argmax(A) # 0
# nanargmin, nanargmax : nan제외한 값 중 최대, 최소 index
np.nanargmin(A) # 1
np.nanargmax(A) # 5


🍏 행렬 연산 함수

* 사칙연산 (np.add, np.substract, np.multiply, np.divide)

# 각 해당하는 위치의 원소끼리 연산
np.add(), np.substract(), np.multiply(), np.divide()

* 행렬곱 (np.dot)

# 내적, 행렬곱 
# A의 열 개수와 B의 행 개수가 동일해야 함
np.dot(A,B) # A@B 

* 행렬 전치

A.T 
# A.shape (2,3), A.T.shape (3,2)

* 역행렬 (np.linalg.pinv)

np.linalg.inv(A) # 정사각 행렬만 가능
np.linalg.pinv(A) # 정사각, 직사각, 특이값 등 모든 종류의 행렬 가능


🍎 통계에서 자주 사용하는 연산 함수

* 루트 (np.sqrt)

import numpy as np
value_list = [1, 2, 4, 9, 16]
result = np.sqrt(value_list)
print(result)
#[1. 1.41421356 2. 3. 4.]

* 제곱 (np.power)

import numpy as np
np.power(4, 2) # 16
np.power(16, 0.5) # 4.0
np.power([1, 2, 3, 4], 2) # array([ 1,  4,  9, 16])
np.power([1, 2, 3], [3, 5, 4]) # array([ 1, 32, 81]) #매칭되는 값들끼리 제곱

* 총합(np.sum), 평균(np.mean), 편차, 분산(np.var), 표준편차(np.std)

import numpy as np
height = np.array([175,165,180,160])
np.sum(height) # 총합 680
np.mean(height) # 평균 170.0
height - np.mean(height) # 편차 array([  5.,  -5.,  10., -10.])
# 분산 : 편차제곱합의 평균
np.var(height) # 62.5
# 표준편차 : 분산에 루트를 씌운것
np.std(height) # 7.91


Ref

profile
주니어 개발자 주니어발록 주니어예티 주니어레이스

0개의 댓글