In [21]:
import numpy as np
from scipy.stats import t
from scipy.stats import ttest_ind

np.random.seed(32)

a = np.random.normal(3,4,size=10)
b = np.random.normal(3,4,size=7)

na = len(a)
a_mean = np.sum(a)/len(a)
a_var = np.sum((a_mean - a)**2 / (na-1))
a_stddev = np.sqrt(a_var)

print(a)
print(a_mean,a_var,a_stddev)

nb = len(b)
b_mean = np.sum(b)/len(b)
b_var = np.sum((b_mean - b)**2 / (nb-1))
b_stddev = np.sqrt(b_var)

print(b)
print(b_mean,b_var,b_stddev)

sp = np.sqrt(  ((na - 1) * a_var  + (nb -1)*b_var)/(na + nb -2)  )
tval = (a_mean - b_mean)/(sp * np.sqrt( (1./na) + (1./nb)))

print(tval)
print(t.cdf(tval,df=na+nb-2) * 2)


ttest_ind(a,b)


[1.6044222  6.93481373 5.32369132 3.28113776 6.11013071 5.32783498
 8.88716211 9.65272404 1.95529151 0.24529275]
4.932250110815813 9.806893639641174 3.1315960211434
[ 0.22030695 10.76169384 10.22166076  4.82525541  0.70075184  3.45672201
  9.05432308]
5.60581626988901 19.67875702170116 4.436074505878047
-0.3685228609145479
0.7176326797101336
Out[21]:
Ttest_indResult(statistic=-0.36852286091454783, pvalue=0.7176326797101336)