Python标准库或scipy / numpy / pandas等是否支持从分隔文件(例如TSV或CSV)读取和写入浮点数(也称为“hexfloats”)的十六进制表示形式?
作为测试,我制作了一个CSV文件,其中列在十进制和十六进制浮点之间交替,并尝试使用 pandas.read_csv
读取此文件 . 在结果数据框中,包含十进制浮点数的列已正确转换为Python浮点数,而包含十六进制浮点数的列则保留为字符串 .
编辑:澄清:我没有't need help converting hexfloats into floats, and vice-versa. There' s float.fromhex
和 float.hex
. 我正在寻找的是一个文件阅读器,它将应用合理的启发式方法自动将hexfloats转换为浮点数(就像 pandas.read_csv
知道将数字的十进制表示转换为数字Python对象) .
2 回答
我在
%
格式规范中找不到任何可以为浮点数创建hex
的内容(只有%x
用于整数) . 所以接受你的float.hex
,我可以创建一个函数,将数组中的每个浮点数转换为十六进制字符串:然后我可以使用通常的
savetxt
将这些字符串写入文件看起来像:
和
loadtxt
可以处理这个问题loadtxt
在看到0x
列时使用这段代码您可以通过研究
npyio.py
文件获得其他想法 .我想......也许吧?