def erfcc(x):
    """Complementary error function."""
z = abs(x)
t = 1.0 / (1.0 + 0.5 * z)
r = t * exp(-z * z - 1.26551223 + t * (1.00002368 + t * (0.37409196 + t * (
    0.09678418 + t * (-0.18628806 + t * (0.27886807 + t * (-1.13520398 + t *
    (1.48851587 + t * (-0.82215223 + t * 0.17087277)))))))))
if x >= 0.0:
    return r
else:
    return 2.0 - r

def ncdf(x):
    return 1.0 - 0.5 * erfcc(x / 2 ** 0.5)
How to calculate cumulative normal distribution in Python