>

12k 개의 샘플이있는 데이터 세트가 있는데 각 샘플에는 하나의 레이블 y가 있습니다. 이 12k 샘플에서 가능한 모든 출력을 추출하려면 어떻게해야합니까? (출력은 50에서 60까지 다른 값을 가질 수 있습니다 ... 모릅니다).

이 기능이 내장되어 있습니까? 60 번과 같은 모든 샘플에 대해 for를 사용하는 것과 다른 방법 .... 나는 당신을 모른다. 그러나 이러한 프로세스 손실은 나를 화나게하고 코드를 너무 추악하게 만든다.

참고 : 각 샘플의 y가 포함 된 목록을 원하지 않습니다. 나는 얼마나 많은 y가 있는지 알고 싶어서 학습 모델의 '출력 수'를 설정할 수 있습니다.

나는 그것을 해결했다 :

   notfound = 0
    n_outputs = 0
    for num in range(1,80):
        temp = n_outputs
        try:
            for i in range(len(y)):
                if int(y[i]) == num:
                    n_outputs += 1
                    raise StopIteration
        except StopIteration:
            pass
        if temp == n_outputs:
            notfound += 1
        if notfound == 3:
            break
    print(n_outputs)

그러나 다른 방법이 있습니까?

  • 답변 # 1

    배열 형태의 데이터가있는 경우 먼저 팬더 데이터 프레임으로 변환 한 다음 data['output'].unique() 를 수행하십시오. . 고유 한 출력 목록을 제공합니다. 와이즈 비즈  출력 열의 고유 값 수를 제공합니다. 와이즈 비즈  귀하의 데이터 프레임과 data['output'].nunique() 입니다  라벨 열입니다.

    data

관련 자료

  • 이전 c# - 채널의 IAudioClient를 가져 오려고하면 프로그램이 충돌 함
  • 다음 PHP - php - ms sql server에 연결