NumPy的savetxt在为每列定义fmt时不导出分隔符

ste*_*e90 5 python arrays numpy

所以我有一个名为 的数组final,它被保存到带有标题的文本中。该数组是使用 numpy.column_stack 构建的,如下所示:

numpy.column_stack((SampNo, dummy, data, data1))
Run Code Online (Sandbox Code Playgroud)

当我使用

numpy.savetxt(f, final, delimiter=',', fmt='%1.7f')
Run Code Online (Sandbox Code Playgroud)

文本文件已正确保存并带有分隔符。但是,我需要前两列是字符串而不是浮点数,并且当我使用时:

numpy.savetxt(f, final, delimiter=',', fmt='%s %s %1.7f %1.7f')
Run Code Online (Sandbox Code Playgroud)

...文件中不再出现逗号分隔符。

另外,顺便说一句,我最终%1.7f在这两个%s选项之后使用了 8 次,因为总共有 10 列。有没有更简洁的方法来做到这一点?

Ran*_*ndy 4

np.savetxt文档字符串:

fmt : str or sequence of strs, optional
    A single format (%10.5f), a sequence of formats, or a
    multi-format string, e.g. 'Iteration %d -- %10.5f', in which
    case `delimiter` is ignored.
Run Code Online (Sandbox Code Playgroud)

如果使用多格式字符串方法,则需要在格式中手动指定分隔符。

顺便说一句,您可以乘以字符串以避免剪切和粘贴:

In [5]: "%s,%s" + ",%1.7f"*8
Out[5]: '%s,%s,%1.7f,%1.7f,%1.7f,%1.7f,%1.7f,%1.7f,%1.7f,%1.7f'
Run Code Online (Sandbox Code Playgroud)