The initial numpy solution

This works, but the meaning of "infinite" was lost on us, as
neither of us had coded cellular automata before, the meaning here
being that one needs to loop the indices at the edge of the field.
Fixed indexing and a pygame GUI to show the result
Stdlib-only implementation in Python using lists

Broadcasts a function over the list-of-lists to produce result
basically the approach we were trying to do in Haskell, but
written in Python.