 Open in App
Not now

# Python Program for Program to Print Matrix in Z form

• Difficulty Level : Basic
• Last Updated : 29 Nov, 2022

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 `

My Personal Notes arrow_drop_up