python - 如何使用 numpy 生成完整的直方图?

标签 python numpy histogram

我在 numpy.array 中有一个很长的列表。我想为它生成一个直方图。然而,Numpy 的 built in histogram需要预定义数量的箱子。生成每个值一个 bin 的完整直方图的最佳方法是什么?

最佳答案

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

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

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

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

关于python - 如何使用 numpy 生成完整的直方图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1420235/

相关文章:

python /皮赛德 : Create Image Histogram

python - 如何在 PyCharm 中运行命令而不必运行整个脚本?

python - SQLalchemy 查询获取字典的聚合数组

python - 在 python 中对数组使用多个索引

python - 在 2d numpy 数组的每一行中找到最小的非零值

C 直方图错误数字

python - 为什么使用 argparse 而不是 optparse?

python - NERSC 上的 Jupyter 和 Tensorflow

python - Pandas——用随机正态变量和另一列的平均值填充 pandas 列

python - 在 Spark 中创建分箱直方图