微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pandas 提高数据精度

如何解决Pandas 提高数据精度

我有一个数据框,其中行代表对象,列代表对象特征。

我正在尝试计算对象的余弦相似度,当我运行代码时它似乎工作得很好,但是当我对距离进行排序时,壁橱对象的距离都为 0,这只有在以下情况下才有可能它们的向量是相同的,但事实并非如此。

我查看了数据输出,似乎任何精度超过 E-16 的数字都会变为 0(它在终端打印输出和 csv 文件输出中都显示为 0)

列是 float64 格式。

如何显示更高的精度?

这里是我正在运行的代码供参考:

userrole

解决方法

如果您的意思是当您尝试获取两个元素之间的差异时获得 floor,而当元素差异小于 0 时获得 0,那么这就是 float64 精度限制。参见示例 1e-16。可使用 print(1+1e-16) 获取有关此信息。

您应该尝试使用更高精度的数据类型。 例如:

numpy.finfo(numpy.float)

如果 dfe = pd.read_csv('file.csv').astype(numpy.float128) 的结果仍然是 squareform dtype,您应该将您的 scipy 库update 更新到更高版本。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。