나는 NumPy가 ndarray
이고 모양이 (32, 1024)이며 32 신호 측정을 보유하고 있으며, 32. 각기 다른 체중을 가졌지 만 numpy.average
을 사용했지만 내 체중이 복잡하고 average
은 내 결과를 버리는 합계를 기반으로 체중의 정상화를 수행합니다.NumPy ndarray 방송 - 모양 (X,) vs (X, 1)
평균에 대한 코드를 보면 신호 배열에 가중치를 곱한 다음 첫 번째 축을 합산하여 동일한 결과를 얻을 수 있다는 것을 깨달았습니다. 그러나 (32, 1024) 신호 배열로 내 (32,) 가중치 배열을 시도하고 곱하면 (32,)가 (32, 1024)로 브로드 캐스팅 될 수 없으므로 치수 불일치가 발생합니다. 나는에 무게 배열 바꿀 경우 예상대로 (32, 1) 다음 모든 그러나이 오히려 추한 코드의 결과를 작품 :
avg = (weights.reshape((32, 1)) * data).sum(axis=0)
NumPy와 내 (32) 배열에 방송을 허용하지 않습니다 왜 아무도 설명 할 수 (32, 1024) 그리고/또는 가중 평균을 수행 할 수있는 대안을 제시 할 수 있습니까?
numpy는'(1, 32)'에서'(1024,32)'까지 확장 할 수 있습니다. 그러나'(32,)'를'(32,1)'로 확장 할 권한을 주어야합니다. 이렇게하면 a (32,)에 a (1024,)를 곱한 경우와 같이 다른 상황에서 모호함을 피할 수 있습니다. 내 최근 답변에서 이것에 대한 자세한 내용은 http://stackoverflow.com/a/39238203/901925 – hpaulj