I currently have the following snippet:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import numpy
from numpy import linalg
A = [[1,2,47,11],[3,2,8,15],[0,0,3,1],[0,0,8,1]]
S = [[113,49,2,283],[-113,0,3,359],[0,5,0,6],[0,20,0,12]]
A = numpy.matrix(A)
S = numpy.matrix(S)
numpy.set_printoptions(precision=2, suppress=True, linewidth=120)
print("S^{-1} * A * S")
print(linalg.inv(S) * A * S)
which produces this output:
Is there a standard way to produce an output similar to the following? How can I get this output?
[[ -1 -0.33 0 0]
[ 0 1 0 0]
[ 0 -648 4 0]
[ 0 6.67 0 5]]
What's different?
i
and the first character of column i+1
, but it might be more if more is needed (NumPy output makes two spaces)BetterPythonConsole
messes it up)-0
but 0
0.
but 0
edit: It seems as if the Python Console, which gets started with gEdits BetterPythonConsole plugin does something different than Python, when I start it from terminal.
This is the output as text of the script above
moose@pc07:~/Desktop$ python matrixScript.py
S^{-1} * A * S
[[ -1. -0.33 0. -0. ]
[ 0. -1. -0. 0. ]
[ 0. -648. 4. -0. ]
[ 0. 6.67 0. 5. ]]
With prettyprint:
S^{-1} * A * S
matrix([[ -1. , -0.33, 0. , -0. ],
[ 0. , -1. , -0. , 0. ],
[ 0. , -648. , 4. , -0. ],
[ 0. , 6.67, 0. , 5. ]])
This is defenitely worse, but it was worth a try.
Use the for Loop to Print the Matrix in Python We use the map function, which converts the whole row to a string, and then we apply the join function to this whole row which converts it all to a single string and separate elements by the separator specified.
We can use the threshold parameter of the numpy. set_printoptions() function to sys. maxsize to print the complete NumPy array.
Code: import numpy as np #creating matrix from array like object B = np. matrix([[1, 2, 3], [4, 5, 6]]) print("Array created using array like object is :\n", B)
If you use numpy 1.8.x you can customize formatting with the formatter
parameter.
For example, setting:
numpy.set_printoptions(formatter={'float': lambda x: 'float: ' + str(x)})
All floats would be printed like float: 3.0
, or float: 12.6666666666
.
Unfortunately I still have numpy 1.6.1 installed and this option is not provided, so I'm not able to use it to get your desired output.
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