NumPy에는 기본적인 산술연산부터, 비교연산, 기타 수학 관련 고급 연산 등 다양한 함수가 구현되어 있습니다.
NumPy의 사칙연산
numpy.add() 또는 +연산자
numpy.substract() 또는 -연산자
numpy.divide() 또는 /연산자
numpy.multiply() 또는 *연산자
numpy 공식사이트 Docuentation을 참고하면 좋습니다.
<실습코드>
import numpy as np
import time
# 샘플 데이터 생성
a = np.arange(1,10).reshape(3,3)
print('A---')
print(a)
b = np.arange(9,0,-1).reshape(3,3)
print('\nB---')
print(b)
'''
# NumPy 의 덧셈연산
'''
result = a + b
print('\nResult of A + B')
print(result)
result = np.add(a,b)
print('\nResult of np.add(a,b)')
print(result)
'''
# NumPy 의 나눗셈 연산
'''
result = a/b
print('\nResult of A / B')
print(result)
result = np.divide(a,b)
print('\nResult of np.divide(a,b)')
print(result)
'''
# NumPy 의 비교연산(>)
'''
result = a > b
print('\nResult of comparison operator(>)')
print(result)
'''
# NumPy 의 비교연산(!=)
'''
result = a != b
print('\nResult of comparison operator(!=)')
print(result)
'''
# Python 코드 실행 시간 측정하기
'''
python_arr = range(10000000)
start = time.time()
for i in python_arr:
i + 1
print("\nPython(ms):", (time.time() - start)*1000)
'''
# NumPy 코드 실행 시간 측정하기
'''
numpy_arr = np.arange(10000000)
start = time.time()
numpy_arr+1
print("NumPy(ms):", (time.time() - start)*1000)
<실행결과>
A---
[[1 2 3]
[4 5 6]
[7 8 9]]
B---
[[9 8 7]
[6 5 4]
[3 2 1]]
Result of A + B
[[10 10 10]
[10 10 10]
[10 10 10]]
Result of np.add(a,b)
[[10 10 10]
[10 10 10]
[10 10 10]]
Result of A / B
[[0.11111111 0.25 0.42857143]
[0.66666667 1. 1.5 ]
[2.33333333 4. 9. ]]
Result of np.divide(a,b)
[[0.11111111 0.25 0.42857143]
[0.66666667 1. 1.5 ]
[2.33333333 4. 9. ]]
Result of comparison operator(>)
[[False False False]
[False False True]
[ True True True]]
Result of comparison operator(!=)
[[ True True True]
[ True False True]
[ True True True]]
Python(ms): 840.1219844818115
NumPy(ms): 34.394025802612305
집계 함수(Aggregate Functions) 란 데이터를 종합하여 특정 연산을 적용하는 함수들을 총칭합니다.
NumPy는 sum(), mean(), count(), min(), max() 등의 다양한 집계함수를 제공하며, 이때 가장 중요한 특징이 데이터의 집계 방향을 결정하는 다음의 axis 값 입니다.
axis = None (default)
axis = 0
axis = 1
<실습코드>
import numpy as np
# 샘플 데이터 생성
sample = np.arange(1,10).reshape(3,3)
print('Sample')
print(sample)
'''
# axis=None 실습 (default)
'''
print('\n[CASE-1]axis=None')
print('sum :', sample.sum() )
print('mean :', sample.mean() )
print('std :', sample.std() )
print('max :', sample.max() )
print('min :', sample.min() )
'''
# axis=0 실습
(아래 주석#을 지우고 _____ 란에 실습을 시작하세요.)
'''
print('\n[CASE-2]axis=0')
print('sum :', sample.sum(axis=0) )
print('mean :', sample.mean(axis=0) )
print('std :', sample.std(axis=0) )
print('max :', sample.max(axis=0) )
print('min :', sample.min(axis=0) )
'''
# axis=1 실습 (default)
'''
print('\n[CASE-3]axis=1')
print('sum :', sample.sum(axis=1) )
print('mean :', sample.mean(axis=1) )
print('std :', sample.std(axis=1) )
print('max :', sample.max(axis=1) )
print('min :', sample.min(axis=1) )
<실행결과>
Sample
[[1 2 3]
[4 5 6]
[7 8 9]]
[CASE-1]axis=None
sum : 45
mean : 5.0
std : 2.581988897471611
max : 9
min : 1
[CASE-2]axis=0
sum : [12 15 18]
mean : [4. 5. 6.]
std : [2.44948974 2.44948974 2.44948974]
max : [7 8 9]
min : [1 2 3]
[CASE-3]axis=1
sum : [ 6 15 24]
mean : [2. 5. 8.]
std : [0.81649658 0.81649658 0.81649658]
max : [3 6 9]
min : [1 4 7]