In [78]:
import numpy as np
import pandas as pd
import scipy
In [30]:
%matplotlib inline
import matplotlib.pyplot as plt
import seaborn as sns
sns.set_style('whitegrid')
In [22]:
fitResults = pd.DataFrame(pd.read_pickle('../data/snFits.p')).transpose()
In [137]:
1.5**2
Out[137]:
In [147]:
fitResults.columns
Out[147]:
In [148]:
fig, ax = plt.subplots()
_ = ax.hist(fitResults.dropna().z.values, histtype='step', bins=np.arange(0., 1.4, 0.05), lw=2)
_ = ax.hist(fitResults.dropna().query('mu_var < 2.25').z, histtype='step',
bins=np.arange(0., 1.4, 0.05), lw=2)
In [97]:
fitResults[['z', 'mu', 'mu_var']] = fitResults[['z', 'mu', 'mu_var']].astype(np.float)
fitResults['mu_err'] = fitResults.mu_var.apply(np.sqrt)
fitResults['mu'] += 29.7558
df = fitResults[['z', 'mu', 'mu_err']].query('mu_err < 1.5')
In [98]:
df.head()
Out[98]:
In [99]:
fig, ax = plt.subplots()
ax.errorbar(df.z, df.mu, yerr=df.mu_err, fmt='ko')
ax.set_ylim(-5., 100.)
Out[99]:
In [100]:
fig, ax = plt.subplots()
df['eff_mu_err'] = np.sqrt(df.mu_err**2 + 0.1**2)
ax.plot(df.z, df.eff_mu_err**(-2),'ko')
Out[100]:
In [101]:
df['binIndex'] = df.z //0.1
In [102]:
grouped = df.groupby('binIndex')
In [103]:
newtable = grouped.agg()
In [107]:
fig, ax = plt.subplots()
vals = np.arange(0., 4., 0.05)
#thresh = 1.50
grouped.get_group(10).mu_err.hist(bins=vals, histtype='step', lw=2, ax=ax, normed=1)
m = grouped.get_group(10).mu_err.mean()
s = grouped.get_group(10).mu_err.std()
ax.plot(vals, scipy.stats.norm.pdf(vals, m, s))
ax.axvline(0.15)
Out[107]:
In [105]:
grouped.get_group(10).mu_err.hist(histtype='step', lw=2, normed=1)
Out[105]:
In [106]:
x = np.random.uniform(size=100)
np.mean(x)
Out[106]:
In [115]:
x[[x > .5]]
Out[115]:
In [116]:
def clipped_mean(mu_err, outlier_thresh):
return np.mean(mu_err[mu_err < outlier_thresh])
In [124]:
grouped.get_group(10).mu_err.mean()
Out[124]:
In [125]:
grouped.get_group(10).mu_err.std()
Out[125]:
In [121]:
grouped.agg(dict(mu_err=[np.mean, np.std]))
Out[121]:
In [127]:
df.head()
Out[127]:
In [132]:
df['mu_xxx'] = df['mu_err'].apply(np.sqrt)
In [133]:
df.head()
Out[133]:
In [ ]: