Fix of sampling routine, change dataframe .as_matrix to .values

This commit is contained in:
Isaac Meyer 2018-07-25 09:41:54 -05:00
parent 6b828523fe
commit 78a411ebb7
3 changed files with 132 additions and 103 deletions

File diff suppressed because one or more lines are too long

View file

@ -438,7 +438,7 @@ class MultiLevelBreitWigner(ResonanceRange):
self._l_values = np.array(l_values)
self._competitive = np.array(competitive)
for l in l_values:
self._parameter_matrix[l] = df[df.L == l].as_matrix()
self._parameter_matrix[l] = df[df.L == l].values
self._prepared = True
@ -683,7 +683,7 @@ class ReichMoore(ResonanceRange):
self._l_values = np.array(l_values)
for (l, J) in lj_values:
self._parameter_matrix[l, J] = df[(df.L == l) &
(abs(df.J) == J)].as_matrix()
(abs(df.J) == J)].values
self._prepared = True

View file

@ -253,11 +253,11 @@ class ResonanceCovarianceRange:
if formalism == 'mlbw' or formalism == 'slbw':
if mpar == 3:
param_list = ['energy', 'neutronWidth', 'captureWidth']
mean_array = pd.DataFrame.as_matrix(parameters[param_list])
spin = pd.DataFrame.as_matrix(parameters['J'])
l_value = pd.DataFrame.as_matrix(parameters['L'])
gf = pd.DataFrame.as_matrix(parameters['fissionWidth'])
gx = pd.DataFrame.as_matrix(parameters['competitiveWidth'])
mean_array = parameters[param_list].values
spin = parameters['J'].values
l_value = parameters['L'].values
gf = parameters['fissionWidth'].values
gx = parameters['competitiveWidth'].values
mean = mean_array.flatten()
par_samples = np.random.multivariate_normal(mean, cov,
size=n_samples)
@ -274,16 +274,21 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidth', 'competitiveWidth']
sample_params = pd.DataFrame.from_records(records,
columns=columns)
# Copy ResonanceRange object
res_range = copy.copy(self.file2res)
# Set _prepared to False to ensure sampled parameters are
# used during construction routine
res_range._prepared = False
res_range.parameters = sample_params
samples.append(res_range)
elif mpar == 4:
param_list = ['energy', 'neutronWidth', 'captureWidth',
'fissionWidth']
mean_array = pd.DataFrame.as_matrix(parameters[param_list])
spin = pd.DataFrame.as_matrix(parameters['J'])
l_value = pd.DataFrame.as_matrix(parameters['L'])
gx = pd.DataFrame.as_matrix(parameters['competitiveWidth'])
mean_array = parameters[param_list].values
spin = parameters['J'].values
l_value = parameters['L'].values
gx = parameters['competitiveWidth'].values
mean = mean_array.flatten()
par_samples = np.random.multivariate_normal(mean, cov,
size=n_samples)
@ -301,14 +306,20 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidth', 'competitiveWidth']
sample_params = pd.DataFrame.from_records(records,
columns=columns)
# Copy ResonanceRange object
res_range = copy.copy(self.file2res)
# Set _prepared to False to ensure sampled parameters are
# used during construction routine
res_range._prepared = False
res_range.parameters = sample_params
samples.append(res_range)
elif mpar == 5:
param_list = ['energy', 'neutronWidth', 'captureWidth',
'fissionWidth', 'competitiveWidth']
mean_array = pd.DataFrame.as_matrix(parameters[param_list])
spin = pd.DataFrame.as_matrix(parameters['J'])
l_value = pd.DataFrame.as_matrix(parameters['L'])
mean_array = parameters[param_list].values
spin = parameters['J'].values
l_value = parameters['L'].values
mean = mean_array.flatten()
par_samples = np.random.multivariate_normal(mean, cov,
size=n_samples)
@ -327,17 +338,23 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidth', 'competitveWidth']
sample_params = pd.DataFrame.from_records(records,
columns=columns)
# Copy ResonanceRange object
res_range = copy.copy(self.file2res)
# Set _prepared to False to ensure sampled parameters are
# used during construction routine
res_range._prepared = False
res_range.parameters = sample_params
samples.append(res_range)
# Handling RM Sampling
if formalism == 'rm':
if mpar == 3:
param_list = ['energy', 'neutronWidth', 'captureWidth']
mean_array = pd.DataFrame.as_matrix(parameters[param_list])
spin = pd.DataFrame.as_matrix(parameters['J'])
l_value = pd.DataFrame.as_matrix(parameters['L'])
gfa = pd.DataFrame.as_matrix(parameters['fissionWidthA'])
gfb = pd.DataFrame.as_matrix(parameters['fissionWidthB'])
mean_array = parameters[param_list].values
spin = parameters['J'].values
l_value = parameters['L'].values
gfa = parameters['fissionWidthA'].values
gfb = parameters['fissionWidthB'].values
mean = mean_array.flatten()
par_samples = np.random.multivariate_normal(mean, cov,
size=n_samples)
@ -353,14 +370,20 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidthA', 'fissionWidthB']
sample_params = pd.DataFrame.from_records(records,
columns=columns)
# Copy ResonanceRange object
res_range = copy.copy(self.file2res)
# Set _prepared to False to ensure sampled parameters are
# used during construction routine
res_range._prepared = False
res_range.parameters = sample_params
samples.append(res_range)
elif mpar == 5:
param_list = ['energy', 'neutronWidth', 'captureWidth',
'fissionWidthA', 'fissionWidthB']
mean_array = pd.DataFrame.as_matrix(parameters[param_list])
spin = pd.DataFrame.as_matrix(parameters['J'])
l_value = pd.DataFrame.as_matrix(parameters['L'])
mean_array = parameters[param_list].values
spin = parameters['J'].values
l_value = parameters['L'].values
mean = mean_array.flatten()
par_samples = np.random.multivariate_normal(mean, cov,
size=n_samples)
@ -378,6 +401,12 @@ class ResonanceCovarianceRange:
'captureWidth', 'fissionWidthA', 'fissionWidthB']
sample_params = pd.DataFrame.from_records(records,
columns=columns)
# Copy ResonanceRange object
res_range = copy.copy(self.file2res)
# Set _prepared to False to ensure sampled parameters are
# used during construction routine
res_range._prepared = False
res_range.parameters = sample_params
samples.append(res_range)
return samples