Numpy로 완전한 히스토그램을 생성하려면 어떻게해야합니까?
문제
나는 매우 긴 목록이 있습니다 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()
비슷한 결과를 줘?
제휴하지 않습니다 StackOverflow