반응형
목차
1. 기본 연산
2. 행렬 간 연산
3. 브로드캐스팅
4. 마스킹 연산
1. 기본 연산
array는 +(더하기), -(빼기), *(곱하기), /(나누기)에 대한 기본 연산을 지원한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import numpy as np
a = np.arange(8)
print('a =', a, '\n')
print('a =', a+5, '\n')
print('a =', a-5, '\n')
print('a =', a*5, '\n')
print('a =', a/5, '\n')
|
cs |
a = [0 1 2 3 4 5 6 7]
a = [ 5 6 7 8 9 10 11 12]
a = [-5 -4 -3 -2 -1 0 1 2]
a = [ 0 5 10 15 20 25 30 35]
a = [0. 0.2 0.4 0.6 0.8 1. 1.2 1.4]
2. 행렬 간 연산
array와 array끼리 연산도 가능하다. 다차원 행렬에서도 적용할 수 있다.
1
2
3
4
5
6
7
8
9
|
import numpy as np
a = np.arange(4).reshape((2, 2))
b = np.random.randint(10, size = (2, 2))
c = a + b
print('a = \n', a, '\n')
print('b = \n', b, '\n')
print('c = \n', c, '\n')
|
cs |
a =
[[0 1]
[2 3]]
b =
[[5 0]
[2 4]]
c =
[[5 1]
[4 7]]
3. 브로드캐스팅
모양이 다른 array 끼리 연산하는 방법이다.
1
2
3
4
5
6
7
8
9
|
import numpy as np
a = np.arange(3)
b = np.arange(3).reshape((3, 1))
c = a + b
print('a = \n', a, '\n')
print('b = \n', b, '\n')
print('c = \n', c, '\n')
|
cs |
a =
[0 1 2]
b =
[[0]
[1]
[2]]
c =
[[0 1 2]
[1 2 3]
[2 3 4]]
1행 3열의 a 배열과 3행 1열의 b 배열을 합치면 3행 3열의 c 배열이 생성된다. 새롭게 생성되는 인덱스에 있는 데이터는 각 행과 열의 첫 번째 데이터들의 합으로 이루어진다.
1
2
3
4
5
6
7
8
9
|
import numpy as np
a = np.arange(3)
b = np.arange(9).reshape((3, 3))
c = a + b
print('a = \n', a, '\n')
print('b = \n', b, '\n')
print('c = \n', c, '\n')
|
cs |
a =
[0 1 2]
b =
[[0 1 2]
[3 4 5]
[6 7 8]]
c =
[[ 0 2 4]
[ 3 5 7]
[ 6 8 10]]
다른 예로, 1행 3열의 a 배열과 3행 3열의 b 배열을 합친다면 a 배열에 있는 값들이 b 배열의 모든 행에 연산되는 것을 확인할 수 있다.
4. 마스킹 연산
True, False array를 통해서 특정 값들을 뽑아내는 연산 방법이다.
1
2
3
4
5
6
7
8
9
|
import numpy as np
a = np.arange(5)
print('a = \n', a, '\n')
print('a > 2 \n', a > 2, '\n')
print('a == 2 \n', a == 2, '\n')
print('a[a > 2] \n', a[a>2], '\n')
print('a[a > 1] \n', a[a>1], '\n')
|
cs |
a =
[0 1 2 3 4]
a > 2
[False False False True True]
a == 2
[False False True False False]
a[a > 2]
[3 4]
a[a > 1]
[2 3 4]
중괄호를 사용하지 않고 마스킹 연산을 시도한 경우에는 기존 배열의 원소들의 값이 변경되어 해당 조건을 만족하는지에 따라 True, False로 나타난다. 중괄호를 사용하여 마스킹 연산을 시도하면 조건에 맞는 원소들을 반환한다.
반응형
'IT > 파이썬(Python)' 카테고리의 다른 글
파이썬 함수 지역변수와 전역변수 (0) | 2023.04.04 |
---|---|
파이썬 Numpy 집계함수(sum, max, min, mean) (0) | 2023.04.03 |
파이썬 Numpy 배열 모양 바꾸기(reshape, concatenate, split) (0) | 2023.04.02 |
Numpy 배열 인덱싱(Indexing), 슬라이싱(Slicing) (0) | 2023.04.02 |
파이썬 엑셀 데이터 불러올 때 숫자 0 안 사라지게 하는 법 (0) | 2023.03.30 |