-
데이터 사이언스: numpy 연산과 통계 값들 구하기(표준편차, 분산, 평균, 중앙값...)데이터 사이언스 2020. 7. 18. 19:45
기존 파이썬 리스트의 연산과는 달리 numpy 배열의 연산은 배열 원소들간의 사칙 연산입니다.
각 위치마다 정해진 값을 따로 연산하기 때문에 numpy배열의 모양(shape)이 다른 경우에는 연산이 되지 않아
오류가 뜹니다.
따라서 numpy배열끼리의 사칙연산을 코딩하기 위해서는 우선적으로 각 배열의 shape을 확인하여야 합니다.
< numpy 배열 연산 >
import numpy as np x = np.arange(10) y = np.arange(10,20) print(x) print(y)
[0 1 2 3 4 5 6 7 8 9] [10 11 12 13 14 15 16 17 18 19]
numpy 라이브러리를 추가해주고 리스트 x와 y를 만들어줍시다.
x + 2
array([ 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
배열 원소 모든 값에 각각 2씩 더해줍니다.
x * 2
array([ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18])
배열 원소 모든 값에 각각 2씩 곱해줍니다.
x / 2
array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])
배열 원소 모든 값을 각각 2로 나누어 줍니다.
x % 2
array([0, 1, 0, 1, 0, 1, 0, 1, 0, 1], dtype=int32)
배열 원소 모든 값을 2로 나눈 나머지값이 들어갑니다.
x와 y의 모양(shape)가 같기 때문에 연산 가능하며 같은 인덱스 값을 가진 값끼리 연산합니다.
x * y
array([ 0, 11, 24, 39, 56, 75, 96, 119, 144, 171])
x + y
array([10, 12, 14, 16, 18, 20, 22, 24, 26, 28])
x / y
array([0. , 0.09090909, 0.16666667, 0.23076923, 0.28571429, 0.33333333, 0.375 , 0.41176471, 0.44444444, 0.47368421])
< numpy 배열 부울 연산 >
x > 4
array([False, False, False, False, False, True, True, True, True, True])
x 넘파이 배열의 모든 값들에 대해서 > 4 를 시행합니다. 참이면 True, 거짓이면 False를 리턴합니다.
np.where(x > 4)
(array([5, 6, 7, 8, 9], dtype=int64),)
x > 4가 참인 x의 인덱스 값들을 리턴한다.
np.where(x < 3, "a", "b")
array(['a', 'a', 'a', 'b', 'b', 'b', 'b', 'b', 'b', 'b'], dtype='<U1')
x < 3 이 참일때 "a", 거짓일 때 "b"인 배열을 리턴한다.
np.any(y == 12)
True
y의 배열 값중 하나라도 12라면 True를 리턴한다.
np.any(x == 12)
False
x의 배열 값 중 12라는 원소가 없으면 False를 리턴한다.
np.all(y > 10)
False
y 의 모든 배열 값이 > 10 를 만족하면 True, 아니면 False를 리턴한다.
np.all(y <20)
True
y 의 모든 배열 값이 < 20 를 만족하면 True, 아니면 False를 리턴한다.
< 통계에서 사용되는 numpy 기능 >
import numpy as np np_array = np.array([2, 3, 4, 5, 6, 10, 15, 22])
np_array.max()
22
np_array의 리스트 값 중 가장 큰 값(Maximum)을 리턴한다.
np_array.min()
2
np_array의 리스트 값 중 가장 작은 값(Minimum)을 리턴한다.
np_array.mean()
8.375
np_array의 리스트 값의 평균(Mean)을 리턴한다.
np.median(np_array)
5.5
np_array의 리스트 값의 중앙값(Median value)을 리턴한다.
np_array의 중앙에 있는 값은 5와 6이므로 평균인 5.5를 리턴한다.
np_array.std()
6.498797965777979
np_array 리스트의 표준편차(Standard deviation)를 리턴한다.
np_array.var()
42.234375
np_array 리스트의 분산(Variance)를 리턴한다.
반응형'데이터 사이언스' 카테고리의 다른 글
데이터 사이언스: Pandas 잘못된 데이터 고치기 (rename, set_index) (0) 2020.07.25 데이터 사이언스: Pandas 데이터(csv파일) 받아오기, 인덱싱(Indexing), 데이터 변형 공부하기! (0) 2020.07.24 데이터 사이언스: Pandas 시리즈(Series)와 데이터 프레임(Data Frame) 공부하기! (0) 2020.07.21 데이터 사이언스: numpy 기본사용법과 인덱싱(Indexing) 공부하기! (0) 2020.07.18 데이터 사이언스: Jupyter Notebook! 알아두면 유용한 기본단축키와 Markdown 활용법! (0) 2020.07.14