numpy数组输出到文件时出现多余换行
我有一些很长的向量,像下面这样:
a = np.array([ 57.78307975, 80.69239616, 80.9268784, 62.03157284, 61.57220483, 67.99433377, 68.18790282])
当我用下面的方式把它打印到文件里:
outfile.write(str(a))
# or
outfile.write(np.array_str(a))
它会自动把中间的部分换行,这样向量就占用了两行:
[ 57.78307975 80.69239616 80.9268784 62.03157284 61.57220483
67.99433377 68.18790282]
换行的宽度是66。我不太确定这个值是否和终端屏幕的宽度有关。
我只想看到向量在一行里打印出来。我该怎么做呢?
1 个回答
23
这是因为默认的打印选项“行宽”是75:
>>> np.get_printoptions()['linewidth']
75
如果你想关闭换行,可以通过 np.set_printoptions
将行宽设置为无限:
>>> str(a)
'[57.78307975 80.69239616 80.9268784 62.03157284 61.57220483 67.99433377\n 68.18790282]'
>>> np.set_printoptions(linewidth=np.inf)
>>> str(a)
'[57.78307975 80.69239616 80.9268784 62.03157284 61.57220483 67.99433377 68.18790282]'
如果你只想临时改变一次,而不想修改全局设置:
>>> np.array2string(a, max_line_width=np.inf)
'[57.78307975 80.69239616 80.9268784 62.03157284 61.57220483 67.99433377 68.18790282]'