문제

나는 매우 긴 목록이 있습니다 numpy.array. 히스토그램을 생성하고 싶습니다. 그러나 Numpy 's 히스토그램에 내장되었습니다 사전 정의 된 수의 빈이 필요합니다. 각 값에 대해 하나의 빈으로 전체 히스토그램을 생성하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

정수 배열이 있고 최대 값이 너무 크지 않으면 numpy.bincount를 사용할 수 있습니다.

hist = dict((key,val) for key, val in enumerate(numpy.bincount(data)) if val)

편집 : 플로트 데이터가 있거나 거대한 범위에 걸쳐 데이터가 퍼져있는 경우 다음을 수행하여 정수로 변환 할 수 있습니다.

bins = numpy.unique(data)
bincounts = numpy.bincount(numpy.digitize(data, bins) - 1)
hist = dict(zip(bins, bincounts))

다른 팁

모든 가치에 대한 빈은 조금 이상하게 들리지만

bins=a.max()-a.min()

비슷한 결과를 줘?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top