Python print matrix as table

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.

How do you print a matrix table in Python?

How to Print a Matrix in Python.
numpy. array[] method, or,.
numpy.matrix class, or,.
a list comprehension + join[] method..
join[] + map[] methods..

How do you print a table in Python?

How to Print Table in Python?.
Using format[] function to print dict and lists..
Using tabulate[] function to print dict and lists..
texttable..
beautifultable..
PrettyTable..

How do you print a 2D array in Python?

Insert.py.
# Write a program to insert the element into the 2D [two dimensional] array of Python..
from array import * # import all package related to the array..
arr1 = [[1, 2, 3, 4], [8, 9, 10, 12]] # initialize the array elements..
print["Before inserting the array elements: "].
print[arr1] # print the arr1 elements..

How do you print a specific element of a matrix in Python?

PROGRAM:.
#Initialize array..
arr = [1, 2, 3, 4, 5];.
print["Elements of given array: "];.
#Loop through the array by incrementing the value of i..
for i in range[0, len[arr]]:.
print[arr[i]],.

Chủ Đề