'double_scalars에서 잘못된 값이 발견되었습니다'경고, 아마도 numpy
코드를 실행하면이 경고가 항상 4 개의 그룹으로 산발적으로 표시됩니다. 특정 문 앞뒤에 디버그 메시지를 배치하여 출처를 정확히 찾아내어 소스를 찾으려고했습니다.
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
Warning: invalid value encountered in double_scalars
이것은 Numpy 경고이며 이중 스칼라는 무엇입니까?
Numpy에서 사용
min(), argmin(), mean() and random.randn()
Matplotlib도 사용합니다.
부동 소수점 계산 오류처럼 보입니다. numpy.seterr 함수를 확인하여 발생 위치에 대한 자세한 정보를 얻으십시오.
제 경우에는 0으로 나누는 것을 알았습니다.
때때로 데이터의 NaN 또는 null 값이 Numpy와 함께이 오류를 생성합니다. CSV 파일 등에서 데이터를 수집 한 다음 numpy 배열을 사용하여 데이터를 처리하는 경우 데이터 수집에서 문제가 발생했을 수 있습니다. 코드에 알려진 값이있는 작은 데이터 세트를 제공하고 동일한 결과를 얻는 지 확인할 수 있습니다.
numpy.mean
이 경고 를 발생시키기 위해 전달 된 크기가 0 인 배열입니다 (여러 주석에 표시됨).
다른 후보자의 경우 :
median
크기가 0 인 배열에서도이 경고를 발생시킵니다.
다른 후보자는이 경고를 제기하지 않습니다.
min,argmin
둘 다ValueError
빈 배열에서 발생randn
걸립니다*arg
; usingrandn(*[])
은 단일 난수 를 반환합니다.std,var
nan
빈 배열에 반환
비슷한 문제가 발생했습니다-잘못된 값이 발생했습니다 ...이 오류의 원인을 파악하기 위해 많은 시간을 보낸 후 제 경우에는 데이터 프레임의 NaN 때문이라고 생각합니다. Pandas에서 누락 된 데이터 작업을 확인하세요.
없음 == 없음 참
np.nan == np.nan 거짓
NaN이 NaN과 같지 않으면 나누기 및 곱하기와 같은 산술 연산으로 인해이 오류가 발생합니다.
이 문제를 방지하기 위해 수행 할 수있는 몇 가지 작업 :
pd.set_option을 사용하여 분석에서 고려할 소수 자릿수를 설정하여 무한 작은 숫자가 유사한 문제를 유발하지 않도록합니다 ( 'display.float_format', lambda x : '% .3f'% x).
Panda가 분석에서 나머지 숫자를 삭제하도록 df.round ()를 사용하여 숫자를 반올림합니다. 그리고 가장 중요한 것은
NaN을 0으로 설정합니다. df = df.fillna (0). NaN을 0으로 채우는 것이 데이터 세트에 적용되지 않는 경우주의하십시오. 이것은 레코드를 0으로 취급하므로 평균의 N, 표준 등도 변경됩니다.
csv 가져 오기로 작업 할 때마다 df.dropna ()를 사용하여 이러한 모든 경고 또는 오류를 방지하십시오.
나는 계산하는 동안 이것을 만난다 np.var(np.array([]))
. np.var
이 경우 0 인 배열의 크기를 나눕니다.
'code' 카테고리의 다른 글
Java에서 Void 클래스의 필요성은 무엇입니까? (0) | 2020.12.24 |
---|---|
Git 후크가 커밋에 파일을 자동으로 추가 할 수 있습니까? (0) | 2020.12.24 |
False 또는 없음 vs. 없음 또는 False (0) | 2020.12.24 |
테스트 리소스 파일을 얻는 방법은 무엇입니까? (0) | 2020.12.24 |
애플리케이션 버전에 따라 Inno Setup 설치 프로그램의 버전을 자동으로 설정하려면 어떻게해야합니까? (0) | 2020.12.24 |