In [1]:
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
In [2]:
import antipackage
import github.ellisonbg.misc.vizarray as va
Write a Python function that creates a square (size,size)
2d Numpy array with the values 0.0
and 1.0
:
size
.0,0
element should be 1.0
.dtype
should be float
.
In [95]:
def checkerboard(size):
#Create a 2x2 diagonal array
x = np.diag((1.0, 1.0))
#If the size is even, the array is tiled
if size % 2 == 0:
checkers = np.tile(x, (size/2, size/2))
#If the size is odd, the array is tiled larger
else:
board = np.tile(x, ((size + 1)/2, (size + 1)/2))
#The extra row is removed, the matrix is transponsed, and the new extra row is removed
remove = np.delete(board, size, 0)
trans = np.transpose(remove)
checkers = np.delete(trans, size, 0)
return checkers
print checkerboard(4)
In [96]:
a = checkerboard(4)
assert a[0,0]==1.0
assert a.sum()==8.0
assert a.dtype==np.dtype(float)
assert np.all(a[0,0:5:2]==1.0)
assert np.all(a[1,0:5:2]==0.0)
b = checkerboard(5)
assert b[0,0]==1.0
assert b.sum()==13.0
assert np.all(b.ravel()[0:26:2]==1.0)
assert np.all(b.ravel()[1:25:2]==0.0)
Use vizarray
to visualize a checkerboard of size=20
with a block size of 10px
.
In [98]:
va.set_block_size(10)
va.enable()
checkerboard(20)
Out[98]:
In [99]:
assert True
Use vizarray
to visualize a checkerboard of size=27
with a block size of 5px
.
In [101]:
va.set_block_size(5)
checkerboard(27)
Out[101]:
In [102]:
assert True
In [ ]: