I'm trying to print an array like: Table = [[0,0,0],[0,0,1],[0,1,0]]
.
Therefore, I want to print this array as a table like:
0 0 0
0 0 1
0 1 0
How can I make this?
I tried a simple print Table
but this prints the array like this:
[[0,0,0],[0,0,1],[0,1,0]]
Bharel
21.3k4 gold badges35 silver badges68 bronze badges
asked May 7, 2016 at 20:44
Have you tried a basic for
loop?
for line in Table:
print ' '.join[map[str, line]]
It's prettier in Python 3:
for line in Table:
print[*line]
answered May 7, 2016 at 20:47
TigerhawkT3TigerhawkT3
47.4k6 gold badges55 silver badges89 bronze badges
1
In python3 you can print array as a table in one line:
[print[*line] for line in table]
answered Jun 16, 2017 at 6:43
@Tigerhawk's answer is very good if you want something simple.
For other cases, I highly suggest using the tabulate module, allowing great flexibility, and overcoming potential problems like few-digit ints which would cause shifting:
1 2 3
1 12 3
1 2 3
answered May 7, 2016 at 21:00
BharelBharel
21.3k4 gold badges35 silver badges68 bronze badges
1
You could use PrettyTable package:
Example for your variable [Table
] with three columns:
from prettytable import PrettyTable
def makePrettyTable[table_col1, table_col2, table_col3]:
table = PrettyTable[]
table.add_column["Column-1", table_col1]
table.add_column["Column-2", table_col2]
table.add_column["Column-3", table_col3]
return table
answered May 7, 2016 at 21:09
import string
for item in [[0, 0, 0], [0, 0, 1], [0, 1, 0]]:
temp = [' '.join[str[s] for s in item] + '\n']
print[string.replace[temp, '\n', '']]
Test
$ python test.py
0 0 0
0 0 1
0 1 0
answered May 7, 2016 at 21:04
3
I usually do something like this:
def printMatrix[s]:
for i in range[len[s]]:
for j in range[len[s[0]]]:
print["%5d " % [s[i][j]], end=""]
print['\n']
And this code gives you column and row numbers:
def printMatrix[s]:
# Do heading
print[" ", end=""]
for j in range[len[s[0]]]:
print["%5d " % j, end=""]
print[]
print[" ", end=""]
for j in range[len[s[0]]]:
print["------", end=""]
print[]
# Matrix contents
for i in range[len[s]]:
print["%3d |" % [i], end=""] # Row nums
for j in range[len[s[0]]]:
print["%5d " % [s[i][j]], end=""]
print[]
The output looks like this:
0 1 2
------------------
0 | 0 0 0
1 | 0 0 1
2 | 0 1 0
answered May 7, 2016 at 21:11
davo36davo36
6409 silver badges19 bronze badges
7
Outline: How To print a matrix in Python
numpy. array[]
method, or,numpy.matrix
class, or,- a list comprehension +
join[]
method join[] + map[]
methods
Table of Contents
- ❖ Overview
- Print Matrix in Python
- ❖ Method 1: Using The NumPy Library
- ❖ Method 2: Using List Comprehension and join
- ❖ Method 3: Using join[]+map[]
- Conclusion
- Was this post helpful?
❖ Overview
A matrix is a two-dimensional data structure consisting of elements arranged in rows and columns. For example:
The above figure represents a 4×3 matrix since it has four rows and three columns.
Now that you know what a matrix is let us dive into the mission-critical question –
Problem Statement: Given a matrix as an input, how will you print and display it as an output in Python?
You might be wondering – “Can’t I simply print the matrix by storing it in a variable?”🤔 Unfortunately, it won’t print the input matrix. Instead, it will generate a list of lists, as shown below.
❖ Method 1: Using The NumPy Library
Python comes with a multitude of extremely powerful libraries which allow you to work with huge amounts of data with ease.
NumPy
is a library in Python that is used for scientific computing and supports powerful functions to deal with N-dimensional array objects. It also provides us with functions for working in the domains of linear algebra, fourier transform, and matrices.
📓 Note:
You need to install NumPy
before you can use it. You can install it using –
pip install numpy
Let’s have a look at the different ways to create and print a matrix in Python using NumPy
.
1️⃣ Using numpy.array[]
The array[]
method of the NumPy
library allows you to create and print a matrix object.
Example:
import numpy asnp arr=np.array[[[0,1,4,2,3], [4, 2,0,1,5], [2,2,1,0, 3], [3,4,5,3,0]]] print[arr] |
Output:
[[0 1 4 2 3]
[4 2 0 1 5]
[2 2 1 0 3]
[3 4 5 3 0]]
2️⃣ Using numpy.matrix[]
The numpy.matrix[]
class returns a matrix from an array-like object or a string of data.
Syntax:
numpy.matrix[data, dtype = None]
Example:
import numpy asnp arr=np.matrix[[[0,1,4,2,3], [4, 2,0,1,5], [2,2,1,0, 3], [3,4,5,3,0]]] print[arr] |
Output:
[[0 1 4 2 3]
[4 2 0 1 5]
[2 2 1 0 3]
[3 4 5 3 0]]
⚠️Caution: It is not recommended to use this class anymore. Instead, you should opt for regular arrays. The class may be removed/deprecated in the future.
✨ TRIVIA
❖ Method 2: Using List Comprehension and join
✏️ In simple words, a list comprehension is a crisp and compact way of creating Python lists.
Syntax: [expression for item in iterable if condition == True]
Example:
li=[iforiinrange[1,6]] print[li] # [1, 2, 3, 4, 5] |
✏️ join[]
is a function in Python that takes the items of an iterable and combines them into a single string.
Example:
li=["Java",'2','Blog'] print[''.join[li]] # Java2Blog |
Thus, you can leverage the functionality of a list comprehension along with the join
method to print a matrix.
Example:
arr=[[0,1,4,2,3], [4,2,0, 1,5], [2,2,1,0,3], [3, 4,5,3,0]] x='\n'.join[[''.join[['{:4}'.format[item] foritem inrow]]forrow inarr]] print[x] |
Output:
0 1 4 2 3
4 2 0 1 5
2 2 1 0 3
3 4 5 3 0
You can also use a nested for loop
to replicate the above concept.
arr=[[0,1,4,2,3], [4,2,0, 1,5], [2,2,1,0,3], [3, 4,5,3,0]] forrow inarr: forval inrow: print[val, end=" "] print[] |
But, the above code will result in 24 print
statements as opposed to a single print
statement in case of the list comprehension.
❖ Method 3: Using join[]+map[]
✏️ map[ ]
is an inbuilt method in Python that takes a function and an iterable as an input. It then executes the function by passing the iterable as an input to the
function.
Syntax:
map[function, iterables]
Example:
arr=[[0,1,4,2,3], [4,2,0, 1,5], [2,2,1,0,3], [3, 4,5,3,0]] foriinarr: print['\t'.join[map[str, i]]] |
Output:
0 1 4 2 3
4 2 0 1 5
2 2 1 0 3
3 4 5 3 0
Explanation:
- the for loop allows you to iterate through each individual array/row within the matrix.
map[str, i]
converts all the items within each row to a string and then,'\t'.join
combines the individual items in a single string, and then each row gets printed one by one.
Conclusion
Thus, this article unveiled numerous methods to print a matrix in Python. The simplest and the most effective way to print a matrix in Python is undoubtedly the numpy.array[]
method as it takes care of all arrangements and dimensions without any interference for the user.
That’s all about how to print a matrix in Python.
Read here: [Fixed] ModuleNotFoundError: No module named ‘numpy’
With that, we come to the end of this tutorial. Please subscribe and stay tuned for more interesting discussions in the future. Happy coding! 📚
That’s all about how to print matrix in Python.