使用numpy将数组写入stdout

时间:2014-03-19 18:52:25

标签: python arrays python-3.x numpy stdout

将一个Numpy 2D数组写入stdout的惯用方法是什么?例如我有一个数组

a = numpy.array([[2., 0., 0.], [0., 2., 0.], [0., 0., 4.]])

[[ 2.  0.  0.]
 [ 0.  2.  0.]
 [ 0.  0.  4.]]

我想输出:

2.0 0.0 0.0
0.0 2.0 0.0
0.0 0.0 4.0

我可以通过转换为嵌套列表,然后加入列表元素来完成此操作:

print( '\n'.join( [ ' '.join( [ str(e) for e in row ] ) for row in a.tolist() ] ) )

但想要像:

a.tofile( sys.stdout )

(除了这会产生语法错误)。

1 个答案:

答案 0 :(得分:14)

以下代码怎么样?

>>> a = numpy.array([[2., 0., 0.], [0., 2., 0.], [0., 0., 4.]])
>>> numpy.savetxt(sys.stdout, a, fmt='%.4f')
1.0000 2.0000 3.0000
0.0000 2.0000 0.0000
0.0000 0.0000 4.0000

在Python 3+中,使用numpy.savetxt(sys.stdout.buffer, ...)