2

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

4

2 回答 2

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))
于 2009-09-14T08:26:48.013 回答
0

每个值的 bin 听起来有点奇怪,但不会

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

给出类似的结果?

于 2009-09-14T08:21:54.463 回答