首页 > 解决方案 > Numpy.savetxt 格式问题:添加字符串列

问题描述

我已将我的问题缩小到以下几点:

import numpy as np

out_file = "results.txt"
results = [[1,2,3,.4,"5"]] # just one row for testing
format = ['%i', '%i', '%i', '%f', '%s']

np.savetxt(out_file, results, format, '\t')

我只是想保存 5 列数据:3 个整数、1 个浮点数和一个字符串。当我尝试这样做时,我收到错误:

File ".\npyio.py", line 1391, in savetxt
    % (str(X.dtype), format))
TypeError: Mismatch between array dtype ('<U32') and format specifier ('%i      %i      %i      %f      %s')

如果我删除字符串格式和数组中的相应值,代码就可以正常工作。

感觉就像我只是在做一些非常愚蠢的事情,但经过几个小时无果的谷歌搜索后,我认为我需要帮助。

标签: pythonpython-3.xnumpystring-formatting

解决方案


普通的 numpy 数组只有一种数据类型。您可以使用 Object 类型初始化数组,dtype='O'但它仍然无法使用savetxt().

您的问题的解决方案是结构化数组,如此处所示。


推荐阅读