我有一个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对象,但它可能会输出正确的和。