使用Numpy的readtxt读取十六进制数字

时间:2015-07-10 15:40:22

标签: python file numpy text

我只能从文本文件中读取整数值,但是当我尝试以十六进制格式读取整数时,会发生错误。我使用的代码行是

output = np.loadtxt(fidOut, dtype="int32", delimiter="\n");

你能帮助我吗?

1 个答案:

答案 0 :(得分:3)

您需要添加转换器,以便numpy了解如何解释十六进制数据。

对于包含以下数据的简单文件test.csv

af,2b,10    
3aaa,4a,fa

您需要为所有三列指定转换器:

In [2]: np.loadtxt("test.csv", dtype='int32', delimiter=',', converters={_:lambda s: int(s, 16) for _ in range(3)})
Out[2]: 
array([[  175,    43,    16],
       [15018,    74,   250]], dtype=int32)

提供的字典具有列索引作为键,转换器作为值。 根据文件中十六进制数据的表示方式,您可能需要修改上面的lambda - 表达式。