为什么数据帧列上的numpy.sum返回inf



我有一个Pandas数据帧,其列类型为float64

我尝试用numpy.sum计算某些列上的应用和函数

当我激活函数np.sum(x[col_name])时,我接收到"inf"的结果

但当我检查np.where(np.isinf(x[col_name]))的"inf"值在哪里时,我收到了空结果。

所以,我做错了什么。。。

谢谢。

问题似乎是数据中的一个数字大于np.float64接受的最大值。如果运行np.finfo(np.float64),您将看到此dtype接受的最大数字:

Machine parameters for float64
---------------------------------------------------------------
precision =  15   resolution = 1.0000000000000001e-15
machep =    -52   eps =        2.2204460492503131e-16
negep =     -53   epsneg =     1.1102230246251565e-16
minexp =  -1022   tiny =       2.2250738585072014e-308
maxexp =   1024   max =        1.7976931348623157e+308
nexp =       11   min =        -max
--------------------------------------------------------------

根据这个答案:https://stackoverflow.com/a/37272717/4014051python对象使用任意长度的实现,因此解决方案是使数组的dtype为object。这意味着你的代码总体上会更慢,因为你的数据不是numpy对象,但它可能会输出正确的和。

最新更新