I agree with the first two (although for the first, I will take care to return an array of the same shape as the input). As has already been pointed out, the third point is not a good idea. In general, I think it is good when code crashes early on bad input; it's better to crash and force the user to read the docstring once more than to do something the user did not expect (which can lead to headaches later down the data processing pipeline).