numpy TypeError: array was not created from an array-like object 오류 해결하기
소개
NumPy를 활용하다 보면 가끔 'TypeError: array was not created from an array-like object'라는 오류를 만나게 됩니다. 이 오류는 주로 NumPy가 주어진 입력을 배열로 변환할 수 없을 때 발생합니다. 이 글에서는 이 오류가 발생하는 원인과 해결 방법, 그리고 코드 예제를 통해 문제를 해결하는 다양한 방법에 대해 알아보겠습니다.
에러 발생 예시 코드
먼저, 'TypeError: array was not created from an array-like object' 에러가 발생할 수 있는 간단한 예시 코드를 살펴보겠습니다.
import numpy as np
# 배열이 아닌 객체를 사용하여 NumPy 배열 생성 시도
data = None
array = np.array(data)
print(array)
에러 해결 방법
1. 배열로 변환할 객체 확인하기
주어진 객체가 배열 같은 구조인지 또는 유효한 데이터인지를 확인해야 합니다. 예를 들어, None, 정수, 문자열 등이 아닌 리스트, 튜플, NumPy 배열이어야 합니다.
import numpy as np
# 올바른 배열을 제공하여 NumPy 배열 생성
data = [1, 2, 3, 4, 5] # 리스트 사용
array = np.array(data)
print(array)
2. 비어있는 객체를 확인하기
비어 있는 배열이나 구조를 사용하지 않도록 하세요. 예를 들어, 빈 리스트나 빈 튜플을 명시적으로 주신다면 문제가 발생하지 않을 것입니다.
import numpy as np
# 비어있지 않은 배열을 사용하여 NumPy 배열 생성
data = [] # 비어있는 리스트를 사용
if data:
array = np.array(data)
else:
print("입력 리스트가 비어있습니다.")
3. 다양한 데이터 유형 처리하기
입력 데이터가 다양한 데이터 유형을 포함한 경우가 있을 수 있습니다. 이러한 경우, NumPy 배열로 변경하기 전에 데이터 유형을 변환하거나 정리하는 것이 중요합니다.
import numpy as np
# 다양한 데이터 유형을 포함한 리스트
data = [1, 2, '3', None]
# 데이터 정리 후 NumPy 배열 생성
filtered_data = [x for x in data if isinstance(x, (int, float))]
array = np.array(filtered_data)
print(array)
마무리
이번 블로그 글에서는 'TypeError: array was not created from an array-like object' 에러의 원인과 해결 방법에 대해 알아보았습니다. 올바른 입력 데이터를 제공하면 이 문제를 간단히 해결할 수 있습니다. NumPy를 사용할 때는 항상 입력 데이터의 유형을 유의하고, 필요하다면 데이터 처리를 통해 적절한 형식으로 변환하는 것이 중요합니다.