长话短说,我使用networkx创建图表,节点(边缘)之间的权重越低越好。
我的问题是pagerank不喜欢得到零的权重并给我一个错误。所以我在想是有一个数字在python中基本上是零但不完全为零。像0.0000000000001这样的东西?
或者如果我的方法非常糟糕(我怀疑它可能)还有其他方法可以解决这个问题吗? Pagerank recussivily获得一个分数,然后根据整个数据集对其进行标准化,因此随着数据集变得越来越大,分数往往非常低(想想1亿个节点)。
答案 0 :(得分:3)
您可以查看sys.float_info.min
,即最小正标准化浮点数的值。在我的系统上,这是2.2250738585072014e-308
。
答案 1 :(得分:3)
>>> 1e-324
0.0
>>> 1e-323
9.8813129168249309e-324
一些有趣的测试
>>> 1e-307 < sys.float_info.min
False
>>> 1e-307 > sys.float_info.min
True
>>> 1e-323 < sys.float_info.min
True
>>> 1e-323 + 1e-323
1.9762625833649862e-323
>>> 1e-324 + 1e-324
0.0
@ Kari评论的更新
我好奇为什么这是真的
>>> 0.0 < 1e-323 < sys.float_info.min
True