尝试构建我的数据集的直方图时获得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")
样本数量-20必须为非负数。
1.16.4 3.7.4(默认,2019年8月13日,20:35:49)
[GCC 7.3.0]
有趣的是,当我将此数据集转换为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()
的相同问题。
最有用的评论
感谢您的错误报告。 我可以确认该错误也存在于master分支中。
NumPy devs:问题是存在一个内部函数
histograms.py
_hist_bin_sturges
,它使用方法ptp
计算一个数组的最大和最小值之差。 dtypeint16
。 在这种情况下,最大值为32767,最小值为-16,因此差应为32783。但是ptp
返回的值与数组类型相同,因此返回-32753,结果为计算不正确。我们可以通过将
x.ptp()
替换x.max().item() - x.min().item()
。