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

numpy.column_stack((SampNo, dummy, data, data1))

当我使用
numpy.savetxt(f, final, delimiter=',', fmt='%1.7f')

文本文件以正确的分隔符保存。但是,我需要前两列是字符串而不是浮点数,当我使用时:
numpy.savetxt(f, final, delimiter=',', fmt='%s %s %1.7f %1.7f')

…逗号分隔符不再出现在文件中。
另外,作为旁白,我在两个%1.7f选项之后使用%s8次,因为总共有10列。有更整洁的方法吗?

最佳答案

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.

如果使用多格式字符串方法,则需要在格式中手动指定分隔符。
您可以将字符串相乘,以避免剪切和粘贴:
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'

关于python - 为每列定义fmt时,NumPy的savetxt不会导出定界符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36202888/

10-12 17:32