반응형
제공된 bin 확률 을 기반으로 학습 세트에서 요소를 무작위로 선택하는 함수를 작성하고 싶습니다. 저는 세트 인덱스를 11 개의 빈으로 나눈 다음 맞춤 확률 을 만듭니다.
bin_probs = [0.5, 0.3, 0.15, 0.04, 0.0025, 0.0025, 0.001, 0.001, 0.001, 0.001, 0.001]
X_train = list(range(2000000))
train_probs = bin_probs * int(len(X_train) / len(bin_probs)) # extend probabilities across bin elements
train_probs.extend([0.001]*(len(X_train) - len(train_probs))) # a small fix to match number of elements
train_probs = train_probs/np.sum(train_probs) # normalize
indices = np.random.choice(range(len(X_train)), replace=False, size=50000, p=train_probs)
out_images = X_train[indices.astype(int)] # this is where I get the error
다음과 같은 오류가 발생합니다.
TypeError: only integer scalar arrays can be converted to a scalar index with 1D numpy indices array
내가 만든 인덱스 배열을 이미 확인했기 때문에 이상합니다. 1-D 이고 정수 이며 스칼라 입니다.
내가 무엇을 놓치고 있습니까?
참고 : astype (int)
로 indices
를 전달하려고했습니다. 같은 오류입니다.
해결 방법
아마도 오류 메시지가 다소 오해의 소지가 있지만 요점은 X_train
이 numpy 배열이 아니라 목록이라는 것입니다. 배열 인덱싱을 사용할 수 없습니다. 먼저 배열로 만드십시오.
out_images = np.array(X_train)[indices.astype(int)]
참조 페이지 https://stackoverflow.com/questions/50997928
반응형
'파이썬' 카테고리의 다른 글
파이썬 unicode (). decode ( 'utf-8', 'ignore') UnicodeEncodeError 발생 (0) | 2020.10.11 |
---|---|
파이썬 몫과 나머지 (0) | 2020.10.11 |
파이썬 처음 실행할 때 Flask : 프로덕션 환경에서 개발 서버를 사용하지 마세요. (0) | 2020.10.10 |
파이썬 모듈이 가지고있는 메서드, 속성 등을 찾는 방법 (0) | 2020.10.10 |
파이썬 사용자로부터 단일 문자를 읽는 방법은 무엇입니까? (0) | 2020.10.10 |
댓글