Open In App

Python Program for Program to Print Matrix in Z form

Last Updated : 29 Nov, 2022
Suggest changes
Share
Like Article
Like
Report

Given a square matrix of order n*n, we need to print elements of the matrix in Z form

Examples:

Input : mat[][] = {1, 2, 3, 4, 5, 6, 7, 8, 9} Output : 1 2 3 5 7 8 9
Input : mat[][] = {5, 19, 8, 7, 4, 1, 14, 8, 2, 20, 1, 9, 1, 2, 55, 4} Output: 5 19 8 7 14 20 1 2 55 4
Python3
# Python program to print a # square matrix in Z form arr = [[4, 5, 6, 8], [1, 2, 3, 1], [7, 8, 9, 4], [1, 8, 7, 5]] n = len(arr[0]) i = 0 for j in range(0, n-1): print(arr[i][j], end=" ") k = 1 for i in range(0, n): for j in range(n, 0, -1): if(j == n-k): print(arr[i][j], end=" ") break k += 1 # Print last row i = n-1 for j in range(0, n): print(arr[i][j], end=" ") # Code contributed by Mohit Gupta_OMG <(0_o)> 

Output
4 5 6 8 3 8 1 8 7 5 

Time complexity: O(n2) for a given square matrix of order n*n

Auxiliary Space: O(1)

Please refer complete article on Program to Print Matrix in Z form for more details!

Using numpy

numpy has several efficient ways to extract rows and diagonals, as illustrated below as follows: 

Python3
import numpy as np # This function shall print the given matrix in Z-form def printZform(matrix): # Converting the matrix to np array matrix = np.array(matrix) # Printing the first row, the opposite diagonal, and the last row of the matrix print(*matrix[0], *np.diag(np.fliplr(matrix))[1:-1], *matrix[-1]) # Driver Code arr = [[4, 5, 6, 8], [1, 2, 3, 1], [7, 8, 9, 4], [1, 8, 7, 5]] printZform(arr) 

Output
4 5 6 8 3 8 1 8 7 5 

Similar Reads

Article Tags :
Practice Tags :