일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- feature map
- mobilenet
- SQLD
- CROSS JOIN
- bottleneck
- 1x1 Convolution
- 데이터모델링
- 엔터티
- outer join
- Two Pointer
- Depthwise Separable Convolution
- SQL
- 정규화
- 인접행렬
- 백준
- pytorch
- get_dummies()
- dp
- depthwise convolution
- 그래프
- SQLD 후기
- BFS
- skip connection
- 인접리스트
- 연산량 감소
- Inductive Bias
- 식별자
- numpy
- resnet
- dfs
- Today
- Total
SJ_Koding
Numpy의 연산, Broadcast(Element Wise) 본문
안녕하세요, 성지코딩입니다!
이번 게시글은 Numpy의 연산에 대해 알아봅니다. 여기서 Broadcast의 개념은 Pandas에서도 이어지니 꼭 알아두셔야합니다. 어쩌면 Numpy의 꽃이라고 볼 수 있겠네요.
Numpy Array의 연산은 Broadcast(Element Wise)연산으로 이루어집니다.
Array간의 연산은 각 요소별 연산이 이뤄지며 연산 함수 또는 연산자를 이용합니다.
Array와 Scalar간의 연산은 Scalar 값이 Array 각 요소별로 계산합니다.
그림으로 설명합니다.
2 by 2 Array간의 연산입니다. 여기서 리스트로 연산을 진행할 때의 단점이 부각됩니다.
리스트간의 + 연산은 값을 더하는 것이 아니라 그저 이어 붙일 뿐입니다. 리스트로 진행 할 경우에는 반복문을 사용해서 연산하는 것 밖에 방법이 없습니다.
코드로 살펴봅니다.
Array와 Array간의 연산 (덧셈, 뺄셈)
x = np.array([[1, 2], [3, 4]])
y = np.array([[5, 6], [7, 8]])
print(x + y)
print(np.add(x, y))
[[ 6 8]
[10 12]]
[[ 6 8]
[10 12]]
print(x - y)
print(np.subtract(x, y))
[[ -4 -4]
[ -4 -4]]
[[-4 -4]
[-4 -4]]
Array와 Array간의 연산 (곱셈, 나눗셈)
print(x * y)
print(np.multiply(x, y))
[[ 5 12]
[ 21 32]]
[[ 5 12]
[ 21 32]]
print(x / y)
print(np.divide(x, y))
[[0.2 0.33333333]
[0.42857143 0.5 ]]
[[0.2 0.33333333]
[0.42857143 0.5 ]]
Array와 Array간의 연산 (내적 연산, 제곱근, 행렬 곱)
print(x @ y)
print(np.dot(x, y))
[[19 22]
[43 50]]
[[19 22]
[43 50]]
print(np.sqrt(x))
print(np.matmul(x, y))
[[1. 1.41421365]
[1.73205081 2. ]]
[[19 22]
[43 50]]
Array와 Scalar 연산
x = np.array([[1, 2], [3, 4]])
print(x+1, 'n')
print(x-1, 'n')
print(x*2, 'n')
print(x/2, 'n')
[[2, 3]
[4, 5]]
[[0, 1]
[2, 3]
[[2 4]
[6 8]
[[0.5 1. ]
[1.5 2. ]]
이번 시간에는 BroadCast에 대해 아주 간단하게 알아 보았는데요, 나중에 BroadCast응용 부분이 나오게 되면 보충 설명을 진행하겠습니다! 다음 게시글에는 Numpy Indexing에 대해 다룹니다. Numpy는 정수 인덱싱, 조건 인덱싱, 팬시 인덱싱을 지원합니다.
감사합니다.
-sjkoding-
'Data analysis > Numpy' 카테고리의 다른 글
Numpy 배열 저장과 불러오기 (1) | 2022.01.16 |
---|---|
Numpy 인덱싱(정수 인덱싱, 조건 인덱싱, 팬시 인덱싱) (0) | 2022.01.02 |
Numpy 배열 형태 변경(reshape)과 데이터 유형 변경 (dtype, astype) (1) | 2021.12.31 |
Numpy의 속성 (0) | 2021.12.31 |
Numpy의 개요와 생성 (1) | 2021.12.31 |