image를 로드할 때 실패하거나 연산 오류를 발생할 때 반환값이 None이 되는 경우가 있어서
다음과 같이
if A == None: ~~~
처럼 작성했더니 제대로 동작안해서 찾아봤다
"=="을 작성할 때는 값이 명확하게 동일한것인지 아닌지가 중점이다
이럴 때는 is None 이라고 쓰는것이 맞다고 한다
하지만
np.ndarray 이 경우에는 타입자체가 np.ndarray를 유지하면서
들어가 있는 값 자체가 None인 경우가 있어서 의도한대로 작동을 안할 수 있다.
이럴 때는 np.isnan() 또는 pd.isnull()를 쓰면 None값인 위치를 알수 있다고 한다
import numpy as np
# None이 포함된 리스트로 배열 생성
# 주의: None은 자동으로 np.nan으로 변환됩니다
arr = np.array([1, 2, None, 4, 5])
# None 값 확인 방법 1: np.isnan() 사용
none_mask = np.isnan(arr)
print("None인 위치:", np.where(none_mask)[0])
# None 값 확인 방법 2: pandas의 isnull() 사용
import pandas as pd
none_mask = pd.isnull(arr)
print("None인 위치:", np.where(none_mask)[0])
만약 객체 배열에서 실제 None 값을 찾는다면
# 객체 배열 생성
obj_arr = np.array([1, 2, None, 4, 5], dtype=object)
# None 값 직접 비교
none_mask = np.array([x is None for x in obj_arr])
print("None인 위치:", np.where(none_mask)[0])
'프로그래밍 언어 > Python' 카테고리의 다른 글
pip 보다 빠른 uv (0) | 2025.04.06 |
---|---|
Torch의 unsqueeze(), unsqueeze_() (0) | 2025.03.19 |
집합 자료형 - set (0) | 2025.03.11 |
Python swapcase() (0) | 2025.03.02 |
python icecream 패키지 (0) | 2025.03.02 |