이번에는 넘파이에서 자주쓰이는 함수를 정리해 보겠습니다. 이전글에 있었던 reshape를 포함해 다음에 나오는 함수들도 매우 자주 사용하는 함수들이니 많은 도움이 될거라 생각합니다.
copy,flatten,round,sort,std,sum,transpose
array에 담긴 데이터의 타입을 변경시켜주는 함수입니다.
import numpy as np
array_1 = np.array([1,2,3,4,5],dtype='int')
print(array_1)
print(array_1.astype('float'))
[1 2 3 4 5] [1. 2. 3. 4. 5.]
array를 list로 바꿔줘야하는 경우가 종종 있는데 이때 사용하는 함수입니다.
array_1 = np.array([1,2,3,4,5],dtype='int')
print(type(array_1.tolist()))
<class 'list'>
정확한 워딩이 아니지만 평균, 표준편차를 쉽게 구할수 있도록 numpy 에서 제공하는 함수들의 사용법을 알아보겠습니다.
array_2 = np.array([1,3,5,7,9])
print(np.min(array_2))
print(np.mean(array_2))
print(np.max(array_2))
print(np.std(array_2))
print(np.var(array_2))
1 5.0 9 2.8284271247461903 8.0
array_3 = np.array([[1,2,3,4],[10,20,30,40],[100,200,300,400]])
print(np.min(array_3,axis=0))
print(np.mean(array_3,axis=0))
print(np.max(array_3,axis=0))
print(np.std(array_3,axis=0))
print(np.var(array_3,axis=0))
[1 2 3 4] [ 37. 74. 111. 148.] [100 200 300 400] [ 44.69899328 89.39798655 134.09697983 178.79597311] [ 1998. 7992. 17982. 31968.]
array_3 = np.array([[1,2,3,4],[10,20,30,40],[100,200,300,400]])
print(np.min(array_3,axis=1))
print(np.mean(array_3,axis=1))
print(np.max(array_3,axis=1))
print(np.std(array_3,axis=1))
print(np.var(array_3,axis=1))
[ 1 10 100] [ 2.5 25. 250. ] [ 4 40 400] [ 1.11803399 11.18033989 111.80339887] [1.25e+00 1.25e+02 1.25e+04]
사용 예시를 보면 1차원일경우 가장 직관적인 값을 리턴합니다. 2차원 이상의 경우 axis를 설정해줄수 있는데 쉽게 말해서 축을 결정해서 계산을 해냅니다. 가로, 세로 또는 그 이상의 차원이 존재할 경우에 다양하게 지정할 수 있습니다.
any : 특정 조건을 만족하는 원소가 있으면 True를 리턴합니다.
array_4 = np.array([1,10,100,1000,10000])
print(np.any(array_4>=1))
print(np.any(array_4>=10))
print(np.any(array_4>=100))
print(np.any(array_4>=1000))
print(np.any(array_4>=10000))
print(np.any(array_4>=100000))
True True True True True False
all : 모든 원소가 조건을 만족하면 True를 리턴합니다.
array_4 = np.array([1,10,100,1000,10000])
print(np.all(array_4>=1))
print(np.all(array_4>=10))
print(np.all(array_4>=100))
print(np.all(array_4>=1000))
print(np.all(array_4>=10000))
print(np.all(array_4>=100000))
True False False False False False
where : 조건에 맞는 인덱스만 리턴합니다.
array_4 = np.array([1,10,100,1000,10000])
print(np.where(array_4>=1))
print(np.where(array_4>=10))
print(np.where(array_4>=100))
print(np.where(array_4>=1000))
print(np.where(array_4>=10000))
(array([0, 1, 2, 3, 4], dtype=int64),) (array([1, 2, 3, 4], dtype=int64),) (array([2, 3, 4], dtype=int64),) (array([3, 4], dtype=int64),) (array([4], dtype=int64),)
where(조건, True일때 출력값, false일때 출력값)
array_4 = np.array([1,10,100,1000,10000])
print(np.where(array_4>=1,array_4,0))
print(np.where(array_4>=10,array_4,0))
print(np.where(array_4>=100,array_4,0))
print(np.where(array_4>=1000,array_4,0))
print(np.where(array_4>=10000,array_4,0))
[ 1 10 100 1000 10000] [ 0 10 100 1000 10000] [ 0 0 100 1000 10000] [ 0 0 0 1000 10000] [ 0 0 0 0 10000]
array_4 = np.array([1,10,100,1000,10000])
print(np.where(array_4>=1,True,False))
print(np.where(array_4>=10,True,False))
print(np.where(array_4>=100,True,False))
print(np.where(array_4>=1000,True,False))
print(np.where(array_4>=10000,True,False))
[ True True True True True] [False True True True True] [False False True True True] [False False False True True] [False False False False True]
최대값 또는 최소값의 인덱스가 궁금할때 사용가능합니다.
array_5 = np.array([-100,-10,-1,1,10,100])
print(np.argmax(array_5))
print(np.argmin(array_5))
5 0
array_6 = np.array([[10,20,30,40,50,60],[30,20,10,-50,-60,-70],[-1,-2,-3,-4,-5,-6]])
print(np.argmax(array_6,axis=0))
print(np.argmin(array_6,axis=0))
[1 0 0 0 0 0] [2 2 2 1 1 1]
array_6 = np.array([[10,20,30,40,50,60],[3,2,1,5,6,7],[-1,-2,-3,-4,-5,-6]])
print(np.argmax(array_6,axis=1))
print(np.argmin(array_6,axis=1))
[5 5 0] [0 2 5]
array_6 = np.array([[10,20,30,40,50,60],[3,2,1,5,6,7],[-1,-2,-3,-4,-5,-6]])
print(np.argmax(array_6))
print(np.argmin(array_6))
5 17
Pandas_3 (0) | 2021.06.24 |
---|---|
Pandas2 (0) | 2021.06.20 |
Pandas_1 (0) | 2021.06.18 |
Numpy_1 (0) | 2021.06.11 |
댓글 영역