특정 클래스에만 해당하는 값에 대한 속성의 평균을 찾는 함수를 작성하려고합니다.
아래는 내 코드입니다.
`mean=0
total=0
count=0
for i in range(len(training_data)):
if (training_data[i,334])==0:
if training_data[i,2]<>None:
total+=training_data[i,2]
count+=1
mean=total/count`
그러나 내 속성에는 일부 null 값이 있습니다. numpy로 작업 중이며 null 값이 "NaN"으로 코딩되고 있습니다. 위의 함수에서 값이 "None"(Python의 null과 동일)과 같을 수 없음을 구체적으로 지정하더라도 "total"속성은 계속해서 'nan'으로 표시됩니다. "None"에 대해 여러 가지 등가물을 시도했지만 'nan'이외의 총 변수 값을 얻을 수 없었습니다. 내가 놓친 명백한 것이 있습니까? 미리 감사드립니다!
numpy
코드 의 힘 으로 2 줄로 줄일 수 있습니다.
idx = training_data[:,334] == 0
mean = np.nanmean(training_data[idx, 2])
idx
여기 True
에 특정 클래스에 속하는 행의 인덱스를위한 부울 배열이 있으며 np.nanmean
NaN을 무시하고 평균값을 계산합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다