Skip to content
Related Articles

Related Articles

Improve Article

Python program to print checkerboard pattern of nxn using numpy

  • Difficulty Level : Hard
  • Last Updated : 06 Apr, 2020

Given n, print the checkboard pattern for a n x n matrix

Checkboard Pattern for n = 8:

It consists of n * n squares of alternating 0 for white and 1 for black.

We can do the same using nested for loops and some if conditions, but using Python’s numpy library, we can import a 2-D matrix and get the checkboard pattern using slicing.
W2’ll be using following python function to print pattern :



x = np.zeros((n, n), dtype=int)

Using this function, we initialize a 2-D matrix with 0’s at all index using numpy

  • x[1::2, ::2] = 1 : Slice from 1st index row till 1+2+2… and fill all columns with 1 starting from 0th to 0+2+2… and so on.
  • x[::2, 1::2] = 1 : Slice from 0th row till 0+2+2… and fill all columns with 1 starting from 1 to 1+2+2+…..

Function of np.zeros((n, n), dtype=int) : Often, the elements of an array are originally unknown, but its size is known. Hence, NumPy offers several functions to create arrays with initial placeholder content. These minimize the necessity of growing arrays, an expensive operation. Using the dtype parameter initializes all the values with int data-type.
For example: np.zeros, np.ones etc.




# Python program to print nXn
# checkerboard pattern using numpy
  
import numpy as np
  
# function to print Checkerboard pattern
def printcheckboard(n):
      
    print("Checkerboard pattern:")
  
    # create a n * n matrix
    x = np.zeros((n, n), dtype = int)
  
    # fill with 1 the alternate rows and columns
    x[1::2, ::2] = 1
    x[::2, 1::2] = 1
      
    # print the pattern
    for i in range(n):
        for j in range(n):
            print(x[i][j], end =" "
        print() 
  
  
# driver code
n = 8
printcheckboard(n)

Output:

Checkerboard pattern:
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 
0 1 0 1 0 1 0 1 
1 0 1 0 1 0 1 0 

Improved Source Code Based on Assumption that Checkerboard is always an even nXn i.e., n is even




# Python program to print nXn Assuming that n 
# is always even as a checkerboard was
  
import numpy as np
def printcheckboard(n):
    final = []
    for i in range(n):
        final.append(list(np.tile([0,1],int(n/2))) if i%2==0 else list(np.tile([1,0],int(n/2))))
    print(np.array(final))
  
  
# driver code
n = 8
printcheckboard(n)

Output:

Checkerboard pattern:
[[0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]
 [0 1 0 1 0 1 0 1]
 [1 0 1 0 1 0 1 0]]

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :