본문 바로가기
Python/numpy

numpy ValueError: Shapes (3,) and (4,) not aligned 오류 해결하기

by PySun 2024. 10. 16.
반응형

소개

Python의 NumPy를 사용하다가 'ValueError: Shapes (3,) and (4,) not aligned' 오류가 발생하는 경우는 자주 접할 수 있는 문제입니다. 이 오류는 주로 배열 간의 곱셈이나 덧셈 시에 두 배열의 형태가 맞지 않을 때 발생합니다. 이 블로그 글에서는 이러한 오류가 발생하는 원인과 해결 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

먼저, 'ValueError: Shapes (3,) and (4,) not aligned' 에러가 발생할 만한 간단한 예시 코드를 살펴봅시다.

import numpy as np

# 배열 생성
a = np.array([1, 2, 3])
b = np.array([4, 5, 6, 7])

# 배열 간의 덧셈 시도
result = a + b
print(result)

에러 해결 방법

1. 배열의 크기를 맞추기

가장 일반적인 해결 방법은 두 배열의 크기를 맞추는 것입니다. 덧셈이나 곱셈을 하기 위해선 두 배열 모두 같은 형태를 가져야 합니다. 다음은 배열의 크기를 맞추는 방법입니다.

import numpy as np

# 배열 생성
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])  # 크기를 맞춘 배열

# 배열 간의 덧셈
result = a + b
print(result)

2. Broadcasting 기능 사용하기

NumPy는 다양한 형태의 배열 간에도 연산을 가능하게 하는 Broadcasting이라는 강력한 기능을 제공합니다. 이를 이용하여 다양한 상황에서 유용하게 배열을 다룰 수 있습니다. 다음은 Broadcasting을 사용하는 예제입니다.

import numpy as np

# 3x1 배열 생성
a = np.array([[1], [2], [3]])
# 1x4 배열 생성
b = np.array([4, 5, 6, 7])

# Broadcasting을 사용한 덧셈
result = a + b
print(result)

3. 배열의 형태 확인하기

배열의 구조를 파악하여 문제가 발생하는 원인을 찾는 것이 중요합니다. 배열의 shape 속성을 사용하여 배열의 차원을 확인하세요.

import numpy as np

# 배열 생성
a = np.array([1, 2, 3])
b = np.array([4, 5, 6, 7])

# 배열의 형태 확인
print("Array a shape:", a.shape)
print("Array b shape:", b.shape)

마무리

이 블로그 글에서는 NumPy에서 발생하는 'ValueError: Shapes (3,) and (4,) not aligned' 에러에 대한 간단한 해결 방법을 살펴보았습니다. 배열의 크기를 맞추거나 Broadcasting 기능을 활용하거나 배열의 형태를 확인하는 방법을 통해 이러한 오류를 극복할 수 있습니다. NumPy를 사용할 때는 항상 배열의 구조를 주의 깊게 살펴보고, 문서를 참고하여 올바른 배열 연산을 진행하는 것이 중요합니다.

반응형