What is an idiomatic way to write a Numpy 2D Array to stdout? e.g. I have an array
a = numpy.array([[2., 0., 0.], [0., 2., 0.], [0., 0., 4.]])
[[ 2. 0. 0.]
[ 0. 2. 0.]
[ 0. 0. 4.]]
That I would like outputted as:
2.0 0.0 0.0
0.0 2.0 0.0
0.0 0.0 4.0
I can do this by converting to a nested list, and then joining the list elements:
print( '\n'.join( [ ' '.join( [ str(e) for e in row ] ) for row in a.tolist() ] ) )
but would like something like:
a.tofile( sys.stdout )
(except this gives a syntax error).
How about the following code?
>>> 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
In Python 3+, use numpy.savetxt(sys.stdout.buffer, ...)
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With