# Coding Example: Game of life (NumPy approach)

This lesson discusses the case study Game of life and explains its solution using NumPy approach.

We'll cover the following

### NumPy Implementation

Starting from the Python version, the vectorization of the Game of Life requires two parts,

• one responsible for counting the neighbors
• one responsible for enforcing the rules

Neighbor-counting is relatively easy if we remember we took care of adding a null border around the arena. By considering partial views of the arena we can actually access neighbors quite intuitively as illustrated below for the one-dimensional case:

               ┏━━━┳━━━┳━━━┓───┬───┐
Z[:-2] ┃ 0 ┃ 1 ┃ 1 ┃ 1 │ 0 │ (left neighbors)
┗━━━┻━━━┻━━━┛───┴───┘
↓︎
┌───┏━━━┳━━━┳━━━┓───┐
Z[1:-1] │ 0 ┃ 1 ┃ 1 ┃ 1 ┃ 0 │ (actual cells)
└───┗━━━┻━━━┻━━━┛───┘
↑
┌───┬───┏━━━┳━━━┳━━━┓
Z[+2:] │ 0 │ 1 ┃ 1 ┃ 1 ┃ 0 ┃ (right neighbors)
└───┴───┗━━━┻━━━┻━━━┛


Going to the two dimensional case requires just a bit of arithmetic to make sure to consider all the eight neighbors.

Get hands-on with 1200+ tech skills courses.