파이썬 numpy ufunc 단순 계산
NumPy 배열 간에 산술 연산자 + - * / 를 직접 사용할 수 있지만, 이 절에서는 목록, 튜플 등 배열과 유사한 객체를 취하고 조건부로 산술을 수행할 수 있는 함수가 있는 동일한 확장에 대해 설명한다.
산술 조건: 산술 연산이 발생해야 하는 조건을 정의할 수 있음을 의미한다.
논의된 모든 산술 함수는 해당 조건을 지정할 수 있는 where 매개 변수를 사용한다.
더하기(Addition) - add()
add() 함수는 두 배열의 내용을 합하고 결과를 새 배열로 반환한다.
arr1의 값을 arr2의 값에 추가한다:
import numpy as np arr1 = np.array([10, 11, 12, 13, 14, 15]) arr2 = np.array([20, 21, 22, 23, 24, 25]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.add(arr1, arr2) print('newarr = np.add(arr1, arr2) : ', newarr) |
위의 예는 10+20, 11+21, 12+22 등을 합한 [30 32 34 36 38 40]을 반환한다.
위의 코드를 실행하면 아래 그림과 같다.
빼기 - subtract()
subtract() 함수는 한 배열에서 다른 배열에서 값을 뺀 후 결과를 새 배열로 반환한다.
arr1의 값에서 arr2의 값을 뺀다:
import numpy as np arr1 = np.array([10, 11, 12, 13, 14, 15]) arr2 = np.array([20, 21, 22, 23, 24, 25]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.subtract(arr1, arr2) print('newarr = np.subtract(arr1, arr2) : ', newarr) |
위의 예는 10-20, 20-21, 30-22 등의 결과인 [-10-1 8 17 26 35]를 반환한다.
위의 코드를 실행하면 아래 그림과 같다.
곱하기 - multiply()
곱셈() 함수는 한 배열의 값과 다른 배열의 값을 곱하고 결과를 새 배열로 반환한다.
arr1의 값에 arr2의 값을 곱한다:
import numpy as np arr1 = np.array([10, 11, 12, 13, 14, 15]) arr2 = np.array([20, 21, 22, 23, 24, 25]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.multiply(arr1, arr2) print('newarr = np.multiply(arr1, arr2) : ', newarr) |
위의 예는 10*20, 20*21, 30*22 등의 결과인 [200 420 660 920 1200 1500]을 반환한다.
위의 코드를 실행하면 아래 그림과 같다.
나누기 - divide()
divide() 함수는 한 배열의 값과 다른 배열의 값을 나눈 후 결과를 새 배열로 반환한다.
arr1의 값을 arr2의 값으로 나눈다:
import numpy as np arr1 = np.array([10, 11, 12, 13, 14, 15]) arr2 = np.array([20, 21, 22, 23, 24, 25]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.divide(arr1, arr2) print('newarr = np.divide(arr1, arr2) : ', newarr) |
위의 코드를 실행하면 아래 그림과 같다.
제곱 - power()
power() 함수는 첫 번째 배열의 값을 두 번째 배열의 값의 power로 상승시키고 결과를 새 배열로 반환한다.
arr1의 값을 arr2의 값의 거듭제곱으로 올린다:
import numpy as np arr1 = np.array([10, 20, 30, 40, 50, 60]) arr2 = np.array([3, 5, 6, 8, 2, 33]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.power(arr1, arr2) print('newarr = np.power(arr1, arr2) : \n', newarr) |
위의 예는 10*10*10, 20*20*20*20, 30*30*30*30 등의 결과인 [1000 3200000 729000000655360000000000]을 반환한다.
위의 코드를 실행하면 아래 그림과 같다.
나머지 - mod(), remainder()
mod() 함수와 remainder() 함수 모두 두 번째 배열의 값에 해당하는 첫 번째 배열의 나머지 값을 반환하고 결과를 새 배열로 반환한다.
나머지를 반환한다:
import numpy as np arr1 = np.array([10, 20, 30, 40, 50, 60]) arr2 = np.array([3, 5, 6, 8, 2, 33]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.mod(arr1, arr2) print('newarr = np.mod(arr1, arr2) : \n', newarr) |
위의 예는 10을 3으로 나누고(10%3), 20을 7(20%7) 30을 9(30%9)로 나누면 나머지 [1 6 3 0 27]을 반환한다.
위의 코드를 실행하면 아래 그림과 같다.
remainder() 함수를 사용해도 동일한 결과를 얻을 수 있다:
import numpy as np arr1 = np.array([10, 20, 30, 40, 50, 60]) arr2 = np.array([3, 5, 6, 8, 2, 33]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.remainder(arr1, arr2) print('newarr = np.remainder(arr1, arr2) : \n', newarr) |
위의 코드를 실행하면 아래 그림과 같다.
몫과 나머지- divmod()
divmod() 함수는 quotient와 mod를 모두 반환한다. 반환 값은 두 개의 배열이고, 첫 번째 배열은 quotient를 포함하고 두 번째 배열은 mod를 포함한다.
몫과 모드를 반환한다:
import numpy as np arr1 = np.array([10, 20, 30, 40, 50, 60]) arr2 = np.array([3, 5, 6, 8, 2, 33]) print('arr1 : ', arr1) print('arr2 : ', arr2) newarr = np.divmod(arr1, arr2) print('newarr = np.divmod(arr1, arr2) : \n', newarr) |
위의 예는 다음을 반환합니다:
(array([3, 2, 3, 5, 25, 1]), array([1, 6, 3, 0, 0, 27])
첫 번째 배열은 몫(10을 3으로, 20을 7로, 30을 9로 나눌 때의 정수 값) 등을 나타낸다.
두 번째 배열은 동일한 분할의 나머지를 나타낸다.
위의 코드를 실행하면 아래 그림과 같다
절대값 - absolute()
absolute() 함수와 abs() 함수 모두 요소 단위로 동일한 절대 연산을 수행하지만 python의 내장 math.abs()와 혼동을 피하기 위해 absolute()를 사용해야 한다
import numpy as np arr = np.array([-1, -2, 1, 2, 3, -4]) print('arr : ', arr) newarr = np.absolute(arr) print('newarr = np.absolute(arr) : \n', newarr) |
위의 코드를 실행하면 아래 그림과 같다
이번 글에서는 파이썬 numpy ufunc의 단순 산술에 대한 연산에 대해서 살펴보았다.
numpy 모듈에서 ufunc의 단순 연산에 add(), subtract(), multiply(), divide(), power(), mod(), remainder(), divmod(), absolute() 등의 함수에 대해서 실습하며 익혔다.
꼭 손으로 눈으로 머리로 익히며 실습하기를 바란다.
모두 화이팅입니다.!!!
출처 : 이 글의 출처는 w3schools사이트를 참고하였으며 필자가 추가하여 정리한 글입니다.
'파이썬 > 파이썬기본문법' 카테고리의 다른 글
파이썬 numpy ufunc 로그 - Log (1) | 2024.01.06 |
---|---|
파이선 numpy ufunc 반올림 (0) | 2024.01.05 |
파이썬 numpy 자체 ufunc 생성 (0) | 2024.01.03 |
파이썬 numpy ufuncs (0) | 2024.01.02 |
파이썬 numpy 지프 분포(Zipf Distribution) (0) | 2024.01.01 |
댓글