Numpy Exercise 1

Imports


In [37]:
import numpy as np
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns

In [38]:
import antipackage
import github.ellisonbg.misc.vizarray as va

Checkerboard

Write a Python function that creates a square (size,size) 2d Numpy array with the values 0.0 and 1.0:

  • Your function should work for both odd and even size.
  • The 0,0 element should be 1.0.
  • The dtype should be float.

In [39]:
def checkerboard(s):
    """Return a 2d checkboard of 0.0 and 1.0 as a NumPy array"""
    # YOUR CODE HERE
    a=np.zeros((s,s))
    #goes through array, making everyother value 1
    #does this by slicing the array components
    a[0:s:2,0:s:2]=1.0
    a[1:s:2,1:s:2]=1.0
    return a

checkerboard(4)


Out[39]:
array([[ 1.,  0.,  1.,  0.],
       [ 0.,  1.,  0.,  1.],
       [ 1.,  0.,  1.,  0.],
       [ 0.,  1.,  0.,  1.]])

In [40]:
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 [41]:
# YOUR CODE HERE
#raise NotImplementedError()
#sets block size and prints the checkerboard
va.set_block_size(10)
b = checkerboard(20)
va.vizarray(b)


Out[41]:

In [42]:
assert True

Use vizarray to visualize a checkerboard of size=27 with a block size of 5px.


In [43]:
# YOUR CODE HERE
#raise NotImplementedError()
va.set_block_size(5)
c = checkerboard(27)
va.vizarray(c)


Out[43]:

In [44]:
assert True