如何用Numpy按行保存指定格式的TXT文件并去除多余逗号?
这个问题我之前也碰到过!问题出在你设置的fmt参数上——你把格式字符串写成了'%7.2f,%5i',这里面的逗号是会被直接输出到文件里的,而你同时又指定了delimiter='\t'作为列分隔符,这就导致输出里同时出现了逗号和制表符,多余的逗号就是这么来的。
解决方法很简单,只需要调整fmt的写法,让它和delimiter配合起来:
方法1:把格式字符串里的逗号换成制表符
直接在格式字符串里用制表符分隔两个列的格式,这样输出时就会用制表符分隔列,不会出现多余逗号:
import numpy as np x = np.random.uniform(0.1, 10., 4) y = np.random.randint(10, size=4) # 修正后的代码 np.savetxt('name.txt', np.vstack((x,y)).T, delimiter='\t', fmt='%7.2f\t%5i')
方法2:用列表为每列单独指定格式
numpy的savetxt支持用列表来给每列设置独立的格式,此时它会自动使用你指定的delimiter来分隔列,这种方式更清晰,尤其是列数较多的时候:
np.savetxt('name.txt', np.vstack((x,y)).T, delimiter='\t', fmt=['%7.2f', '%5i'])
这两种方法都能让你得到按行保存、用制表符分隔、且没有多余逗号的输出,每行的格式会是类似 2.78 5这样的结果,完全符合你的需求。
内容的提问来源于stack exchange,提问作者Julia Roquette
相关产品推荐
相关产品推荐

