After double checking, this seems not quite right. `dtype(None) == np.float64` in other words, this casts to float no matter what the input is if `None` is given, which disagrees with the documentation.