728x90

 

백터화 연산이란?


벡터의 같은 인덱스에 위치한 원소(Element-wise)들끼리 연산을 수행하는 것을 의미한다.

Numpy에서 지원하는 연산 기능으로 반복문을 사용하지 않고 같은 위치의 값끼리 반복 연산을 가능하게 한다.

단, 배열의 형태가 같아야 연산이 가능하다.

1차원 numpy.ndarray

  >>> a = np.arange(5)
  >>> a
  array([0, 1, 2, 3, 4])
  >>> a+a
  array([0, 2, 4, 6, 8])
   
2차원 numpy.ndarray

  >>> a2 = np.arange(9).reshape(3,3)
  >>> a2
  array([[0, 1, 2],
         [3, 4, 5],
         [6, 7, 8]])
  >>> a2 * 2
  array([[ 0,  2,  4],
         [ 6,  8, 10],
         [12, 14, 16]])
          

배열(ndarray)끼리 연산할 경우 같은 위치에 있는 인덱스끼리 연산이 수행되며, 스칼라(scalar)의 경우에는 모든 인덱스에 적용되어 연산이 이루어진다.

 

 

Python의 브로드캐스팅(Broadcasting)이란?


서로 shape(배열의 형태)이 다른 ndarray를 연산이 가능하게 shape(배열의 형태)을 맞춰주는 것을 의미한다.

연산이 가능한 형태로 자동 reshape 및 반복된 값으로 자동으로 할당한 후 연산을 수행한다.

브로드캐스팅 규칙

  • 두 배열의 차원(ndim)이 다른 경우, 차원이 더 낮은 배열이 차원이 더 높은 배열과 같은 차원의 배열로 인식된다.
  • 연산에 사용된 배열과 반환된 배열의 차원의 크기(shape)가 같거나 1일 경우 브로드캐스팅이 가능하다.

 

728x90

'Python > Numpy' 카테고리의 다른 글

[Numpy 기초] Numpy 라이브러리  (2) 2021.06.09
댓글
250x250
최근에 올라온 글
«   2024/10   »
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
Total
Today
Yesterday