I give you two identical piles of bricks and ask you to make a new one picking always the prettier brick:
```
+---+     +---+             +---+
+---+     +---+    --->   +---+
+---+     +---+             +---+
```
Now if I give you two piles with 0 bricks on them, you still have a rule to chose which one, just you do not have to apply it at all. You apply the "prettier" rule to all bricks *individually*, so if you have no brick it all works out fine, my input piles had 0 bricks, and the output pile has 0 bricks. The *rule* itself is still good. This function applies the rules (and there are rules as such, the choicelist *has* entries) to every *element*. And in NumPy elementwise functions will keep working if there are no elements to work on.