이 글에서는 주어진 NumPy 배열에 벡터(배열)를 더하는 방법을 알아보겠습니다. 먼저 NumPy 배열과 벡터를 각각 정의한 뒤, 두 값을 더하여 결과 배열을 얻는 과정을 단계별로 살펴봅니다.
알고리즘
1단계: NumPy 배열을 정의합니다.
2단계: 벡터를 정의합니다.
3단계: 원본 배열과 동일한 크기의 결과 배열을 생성합니다.
4단계: 원본 배열의 각 행에 벡터를 더합니다.
5단계: 결과 배열을 출력합니다.
예제 코드
import numpy as np
original_array = np.array([[1,2,3], [4,5,6], [7,8,9], [10, 11, 12]])
print("Original Array: \n", original_array)
vector = np.array([1,1,0])
print("\nVector: ", vector)
result = np.empty_like(original_array)
for i in range(4):
result[i,:] = original_array[i,:] + vector
print("\nResult: \n", result)실행 결과
Original Array: [[ 1 2 3] [ 4 5 6] [ 7 8 9] [10 11 12]] Vector: [1 1 0] Result: [[ 2 3 3] [ 5 6 6] [ 8 9 9] [11 12 12]]
코드 설명
result = np.empty_like(original_array) 구문은 원본 배열(original_array)과 동일한 크기와 차원을 가진 빈 배열 'result'를 생성합니다. 이후 반복문을 통해 원본 배열의 각 행에 벡터를 더한 값을 결과 배열에 순서대로 저장하게 됩니다.
참고: 브로드캐스팅 활용
사실 NumPy에서는 위와 같이 반복문을 사용하지 않아도 브로드캐스팅(broadcasting) 기능 덕분에 한 줄로 간단히 처리할 수 있습니다.
result = original_array + vector
위 코드처럼 배열과 벡터를 직접 더하면, NumPy가 자동으로 벡터를 각 행에 맞게 확장하여 연산을 수행합니다. 이 방법이 반복문보다 코드도 간결하고 실행 속도도 훨씬 빠르므로, 실무에서는 브로드캐스팅을 활용하는 것이 좋습니다.