numpy.array
에 매우 긴 목록이 있습니다. 그것을위한 히스토그램을 생성하고 싶습니다. 그러나 Numpy의 built in histogram에는 사전 정의 된 수의 저장소가 필요합니다. 각 값에 대해 하나의 저장소로 전체 막대 그래프를 생성하는 가장 좋은 방법은 무엇입니까?numpy로 완전한 막대 그래프를 생성하려면 어떻게해야합니까?
2
A
답변
8
당신은 정수의 배열 및 최대 값은 당신이 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))
0
모든 값에 대한 빈 조금 이상한 소리지만
bins=a.max()-a.min()
비슷한 결과를 제공하지 않을까요?
감사합니다. 'bincount()'에 대해 모른다. –
np.bincount (np.digitize (...))는 매우 유용한 패턴이다. :) – David