Numpy: 样本的直方图数量为负,且bins =“ auto”

创建于 2019-08-27  ·  4评论  ·  资料来源: numpy/numpy

尝试构建我的数据集的直方图时获得Number of samples, -20, must be non-negative.

再现代码示例:

import numpy as np

my_data = np.loadtxt("my_data.csv", delimiter=',', dtype=np.int16)

n_base, bins_base = np.histogram(my_data, bins="auto")

这是my_data.csv

错误信息:


样本数量-20必须为非负数。

Numpy / Python版本信息:


1.16.4 3.7.4(默认,2019年8月13日,20:35:49)
[GCC 7.3.0]

00 - Bug numpy.lib

最有用的评论

感谢您的错误报告。 我可以确认该错误也存在于master分支中。

NumPy devs:问题是存在一个内部函数histograms.py _hist_bin_sturges ,它使用方法ptp计算一个数组的最大和最小值之差。 dtype int16 。 在这种情况下,最大值为32767,最小值为-16,因此差应为32783。但是ptp返回的值与数组类型相同,因此返回-32753,结果为计算不正确。

我们可以通过将x.ptp()替换x.max().item() - x.min().item()

所有4条评论

有趣的是,当我将此数据集转换为float时,则在构建直方图时不会出现问题

感谢您的错误报告。 我可以确认该错误也存在于master分支中。

NumPy devs:问题是存在一个内部函数histograms.py _hist_bin_sturges ,它使用方法ptp计算一个数组的最大和最小值之差。 dtype int16 。 在这种情况下,最大值为32767,最小值为-16,因此差应为32783。但是ptp返回的值与数组类型相同,因此返回-32753,结果为计算不正确。

我们可以通过将x.ptp()替换x.max().item() - x.min().item()

其他大多数bin估算器也存在x.ptp()的相同问题。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

inducer picture inducer  ·  3评论

Kreol64 picture Kreol64  ·  3评论

qualiaa picture qualiaa  ·  3评论

MareinK picture MareinK  ·  3评论

kevinzhai80 picture kevinzhai80  ·  4评论