I am getting a warning <RuntimeWarning: invalid value encountered in sqrt>

This is not 100% Python related. You can't calculate the square root of a negative number (when dealing with real numbers that is).

You didn't take any precautions for when b**2 - (4*a*c) is a negative number.

>>> import numpy as np
>>>
>>> np.sqrt(4)
2.0
>>> np.sqrt(-4)
__main__:1: RuntimeWarning: invalid value encountered in sqrt
nan

Let's test if you have negative values:

>>> import numpy as np
>>> 
>>> a = 0.75 + (1.25 - 0.75) * np.random.randn(10000)
>>> b = 8 + (12 - 8) * np.random.randn(10000)
>>> c = -12 + 2 * np.random.randn(10000)
>>> 
>>> z = b ** 2 - (4 * a * c)
>>> print len([_ for _ in z if _ < 0])
71

Square roots are not defined for strictly negative real numbers, and numpy will produce nan for negative inputs of "real" dtype int, float, and it's two special values -np.inf and nan.

However, square roots are defined for all complex dtype:

dtype e.g.x np.sqrt(x) RuntimeWarning
Positive float 1. 1.
Positive int 1 1
Positive complex 1+0J 1
Negative float -1. nan ⚠️
Negative int -1 nan ⚠️
Negative complex -1+0j 1j
Infinity np.inf np.inf
Negative infinity -np.inf nan ⚠️
NaN np.nan nan