input: Write a python function to determine if a Tic Tac Toe game is over using numpy.
  assert game_over(np.array([[1, 1, 1], [0, -1, 0], [-1, 0, -1]])) == True
  assert game_over(np.array([[1, -1, 0], [0, 1, -1], [0, 0, 1]])) == True
  assert game_over(np.array([[0, 1, -1], [-1, 1, 0], [0, -1, 1]])) == True
  assert game_over(np.array([[1, -1, 0], [0, 1, -1], [-1, 0, 1]])) == False
output: import numpy as np
  
  def game_over(board):
      # Check rows and columns
      for i in range(3):
          if np.all(board[i, :] == board[i, 0]) and board[i, 0] != 0:
              return True
          if np.all(board[:, i] == board[0, i]) and board[0, i] != 0:
              return True
              
      # Check diagonals
      if np.all(np.diag(board) == board[0, 0]) and board[0, 0] != 0:
          return True
      if np.all(np.diag(np.fliplr(board)) == board[0, 2]) and board[0, 2] != 0:
          return True
      
      return False