Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

NumPy 배열에 벡터 추가하는 방법 완벽 정리

이 글에서는 주어진 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가 자동으로 벡터를 각 행에 맞게 확장하여 연산을 수행합니다. 이 방법이 반복문보다 코드도 간결하고 실행 속도도 훨씬 빠르므로, 실무에서는 브로드캐스팅을 활용하는 것이 좋습니다.