Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 넘파이장점
- reshape
- 넘파이
- 배열추가
- numpy
- buit-in exception
- 표본추출
- 파일저장하기
- concat
- 배열쪼개기
- 배열나누기
- Python
- npy
- 배열분리하기
- CONCATENATE
- SQL
- Revising the Select Query I
- 랜덤샘플링
- 배열형태변경
- 배열연산
- 논리배열
- 벡터연산
- fancyindexing
- SQL문제
- 배열자르기
- 배열붙이기
- 파이썬
- Revising the Select Query II
- ndarray
- 해커랭크
Archives
- Today
- Total
기록하는 습관
[Numpy] 008. 배열 간 연산과 브로드캐스팅 (Broadcasting) 본문
배열 간 연산
import numpy as np
Element-wise Operations
a1 = np.array([0,4,5])
a2 = np.array([3,1,2])
print( "a1 + a2 =", a1 + a2)
print( "a1 - a2 =", a1 - a2)
print( "a1 * a2 =", a1 * a2) # dot product가 아님
print( "a1 / a2 =", a1 / a2)
print( "a1 // a2 =", a1 // a2)
print( "a1 % a2 =", a1 % a2)
print( "a1 ** a2 =", a1 ** a2)
a1 + a2 = [3 5 7]
a1 - a2 = [-3 3 3]
a1 * a2 = [ 0 4 10]
a1 / a2 = [0. 4. 2.5]
a1 // a2 = [0 4 2]
a1 % a2 = [0 0 1]
a1 ** a2 = [ 0 4 25]
Dot Product : np.dot(a1,a2), a1.dot(a2)
transpose 하지 않아도 작동함
a1 = np.array([0,4,5])
a2 = np.array([3,1,2])
print( a1.dot(a2) )
print( np.dot(a1, a2) )
14
14
a1 = np.array([0,2,3])
a1.dot(a1)
13
Broadcasting
scalar ~ vector 뿐만 아니라 vector ~ matrix 연산도 지원
a1 = np.array([0,4,5])
a2 = np.array(3)
print( "a1 + a2 =", a1 + a2)
print( "a1 - a2 =", a1 - a2)
print( "a1 * a2 =", a1 * a2) # dot product가 아님
print( "a1 / a2 =", a1 / a2)
print( "a1 // a2 =", a1 // a2)
print( "a1 % a2 =", a1 % a2)
print( "a1 ** a2 =", a1 ** a2)
a1 + a2 = [3 7 8]
a1 - a2 = [-3 1 2]
a1 * a2 = [ 0 12 15]
a1 / a2 = [0. 1.33333333 1.66666667]
a1 // a2 = [0 1 1]
a1 % a2 = [0 1 2]
a1 ** a2 = [ 0 64 125]
a1 = np.array([[0,2],[3,4]])
a2 = np.array([[2,5]])
print( a1, "\n", a2 )
print( "a1.shape :", a1.shape )
print( "a2.shape :", a2.shape )
print( "a1 + a2 =\n", a1 + a2)
[[0 2]
[3 4]]
[[2 5]]
a1.shape : (2, 2)
a2.shape : (1, 2)
a1 + a2 =
[[2 7]
[5 9]]
a1 = np.array([[0,2],[3,4]])
a2 = np.array([[2],[5]])
print( a1, "\n", a2 )
print( "a1.shape :", a1.shape )
print( "a2.shape :", a2.shape )
print( "a1 + a2 =\n", a1 + a2)
[[0 2]
[3 4]]
[[2]
[5]]
a1.shape : (2, 2)
a2.shape : (2, 1)
a1 + a2 =
[[2 4]
[8 9]]
아래와 같이 양쪽 모두 브로드캐스팅이 일어남
a1 = np.array([1,2])
a2 = np.array([[4],[5]])
print( a1, "\n", a2 )
print( "a1.shape :", a1.shape )
print( "a2.shape :", a2.shape )
print( "a1 + a2 =\n", a1 + a2)
print( "a1 ** a2 =\n", a1 ** a2)
[1 2]
[[4]
[5]]
a1.shape : (2,)
a2.shape : (2, 1)
a1 + a2 =
[[5 6]
[6 7]]
a1 ** a2 =
[[ 1 16]
[ 1 32]]
'Python > Numpy' 카테고리의 다른 글
[Numpy] 010. 랜덤 표본 추출 (Random Sampling) (0) | 2023.08.10 |
---|---|
[Numpy] 009. 불리언 배열 (Boolean Array) (0) | 2023.08.09 |
[Numpy] 007. 배열 내 연산 (0) | 2023.08.08 |
[Numpy] 006. 배열 자르기 (Split) (0) | 2023.08.08 |
[Numpy] (문제) #001. Reshape & Concat (0) | 2023.08.07 |