Multi-type storage array in Python
Use np.dtype(object): np.array(board, dtype=np.dtype(object))
As for empty cells: just set them to None.

Edit: as some people have suggested, you might not need a numpy array at all. A list of lists or a dict with tuple indexes might solve your problem just fine and remove the overhead of using numpy.
I'm programming a game in python3.6. There is some pawns on the board which are instance of the class 'pawn'. There is also boulders on the board which are instance of the class boulder. I just want to store these pawns and boulders in an array, like a numpy.array.
I have 2 problems : 

There is different type of object in the array, which is not possible with a numpy.array
How can I represent an empty cell on my board, because I can't use an object, which has not the same type as the others.

How can I solve these two problems ? Is there already an object which can represent grid, an array and which accepts different type ?