如何生成一个完整的numpy直方图?

Nat*_*man 2 python numpy histogram

我有一个很长的名单numpy.array.我想为它生成一个直方图.但是,Numpy 内置的直方图需要预定义数量的分档.生成每个值一个bin的完整直方图的最佳方法是什么?

Ant*_*sma 8

如果你有一个整数数组且最大值不是太大你可以使用numpy.bincount:

hist = dict((key,val) for key, val in enumerate(numpy.bincount(data)) if val)
Run Code Online (Sandbox Code Playgroud)

编辑:如果您有浮动数据,或者数据分布在很大的范围内,您可以通过执行以下操作将其转换为整数:

bins = numpy.unique(data)
bincounts = numpy.bincount(numpy.digitize(data, bins) - 1)
hist = dict(zip(bins, bincounts))
Run Code Online (Sandbox Code Playgroud)