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

Jos*_*eca 4 python text numpy file

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

output = np.loadtxt(fidOut, dtype="int32", delimiter="\n");
Run Code Online (Sandbox Code Playgroud)

你能帮助我吗?

dei*_*aur 6

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

对于test.csv包含数据的简单文件,如下所示:

af,2b,10    
3aaa,4a,fa
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)

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