code

'double_scalars에서 잘못된 값이 발견되었습니다'경고, 아마도 numpy

codestyles 2020. 12. 24. 23:45
반응형

'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; using randn(*[])은 단일 난수 반환합니다.
  • std,varnan빈 배열에 반환

비슷한 문제가 발생했습니다-잘못된 값이 발생했습니다 ...이 오류의 원인을 파악하기 위해 많은 시간을 보낸 후 제 경우에는 데이터 프레임의 NaN 때문이라고 생각합니다. Pandas에서 누락 된 데이터 작업을 확인하세요.

없음 == 없음 참

np.nan == np.nan 거짓

NaN이 NaN과 같지 않으면 나누기 및 곱하기와 같은 산술 연산으로 인해이 오류가 발생합니다.

이 문제를 방지하기 위해 수행 할 수있는 몇 가지 작업 :

  1. pd.set_option을 사용하여 분석에서 고려할 소수 자릿수를 설정하여 무한 작은 숫자가 유사한 문제를 유발하지 않도록합니다 ( 'display.float_format', lambda x : '% .3f'% x).

  2. Panda가 분석에서 나머지 숫자를 삭제하도록 df.round ()를 사용하여 숫자를 반올림합니다. 그리고 가장 중요한 것은

  3. NaN을 0으로 설정합니다. df = df.fillna (0). NaN을 0으로 채우는 것이 데이터 세트에 적용되지 않는 경우주의하십시오. 이것은 레코드를 0으로 취급하므로 평균의 N, 표준 등도 변경됩니다.


csv 가져 오기로 작업 할 때마다 df.dropna ()를 사용하여 이러한 모든 경고 또는 오류를 방지하십시오.


나는 계산하는 동안 이것을 만난다 np.var(np.array([])). np.var이 경우 0 인 배열의 크기를 나눕니다.

참조 URL : https://stackoverflow.com/questions/3767409/invalid-value-encountered-in-double-scalars-warning-possibly-numpy

반응형