Pandas Series any() vs all()

>>> s = pd.Series([float('nan')])
>>> s.any()
False
>>> s.all()
True

Isn't that weird? Documentation on any (Return whether any element is True over requested axis) and all (Return whether all elements are True over requested axis) is similar, but the difference in behavior doesn't seem to make sense to me.