Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def setParamNames(self, names=None):
"""
Sets the names of the params.
:param names: Either a :class:`~.paramnames.ParamNames` object, the name of a .paramnames file to load, a list
of name strings, otherwise use default names (param1, param2...).
"""
self.paramNames = None
if isinstance(names, ParamNames):
self.paramNames = deepcopy(names)
elif isinstance(names, six.string_types):
self.paramNames = ParamNames(names)
elif names is not None:
self.paramNames = ParamNames(names=names)
elif self.samples is not None:
self.paramNames = ParamNames(default=self.n)
if self.paramNames:
self._getParamIndices()
self.needs_update = True
def setLabelsAndDerivedFromParamNames(self, fname, set_derived=True):
if isinstance(fname, ParamNames):
p = fname
else:
p = ParamNames(fname)
for par in p.names:
param = self.parWithName(par.name)
if param is not None:
param.label = par.label
if set_derived:
param.isDerived = par.isDerived
:param label: name for labelling this mixture
:param labels: list of latex labels for each parameter. If not set, defaults to p_{1}, p_{2}...
"""
self.means = np.asarray(means)
self.dim = self.means.shape[1]
self.covs = [np.array(cov) for cov in covs]
self.invcovs = [np.linalg.inv(cov) for cov in self.covs]
if weights is None: weights = [1. / len(means)] * len(means)
self.weights = np.array(weights, dtype=np.float64)
if np.sum(self.weights) <= 0:
raise ValueError('Weight <= 0 in MixtureND')
self.weights /= np.sum(weights)
self.norms = (2 * np.pi) ** (0.5 * self.dim) * np.array([np.sqrt(np.linalg.det(cov)) for cov in self.covs])
self.lims = lims
self.paramNames = ParamNames(names=names, default=self.dim, labels=labels)
self.names = self.paramNames.list()
self.label = label
self.total_mean = np.atleast_1d(np.dot(self.weights, self.means))
self.total_cov = np.zeros((self.dim, self.dim))
for mean, cov, weight, totmean in zip(self.means, self.covs, self.weights, self.total_mean):
self.total_cov += weight * (cov + np.outer(mean - totmean, mean - totmean))
dim = array_dimension(files_or_samples)
if dim in [1, 2]:
self.chains = None
self.setSamples(slice_or_none(files_or_samples, ignore_lines),
slice_or_none(weights, ignore_lines),
slice_or_none(loglikes, ignore_lines), self.min_weight_ratio)
if self.paramNames is None:
self.paramNames = ParamNames(default=self.n)
nchains = 1
elif dim == 3:
for i, samples_i in enumerate(files_or_samples):
self.chains.append(WeightedSamples(
samples=samples_i, loglikes=None if loglikes is None else loglikes[i],
weights=None if weights is None else weights[i], **WSkwargs))
if self.paramNames is None:
self.paramNames = ParamNames(default=self.chains[0].n)
nchains = len(self.chains)
else:
raise ValueError('samples or files must be array of samples, or a list of arrays or files')
self._weightsChanged()
return nchains > 0
def setLabelsAndDerivedFromParamNames(self, fname, set_derived=True):
if isinstance(fname, ParamNames):
p = fname
else:
p = ParamNames(fname)
for par in p.names:
param = self.parWithName(par.name)
if param is not None:
param.label = par.label
if set_derived:
param.isDerived = par.isDerived
def setParamNames(self, names=None):
"""
Sets the names of the params.
:param names: Either a :class:`~.paramnames.ParamNames` object, the name of a .paramnames file to load, a list
of name strings, otherwise use default names (param1, param2...).
"""
self.paramNames = None
if isinstance(names, ParamNames):
self.paramNames = deepcopy(names)
elif isinstance(names, six.string_types):
self.paramNames = ParamNames(names)
elif names is not None:
self.paramNames = ParamNames(names=names)
elif self.samples is not None:
self.paramNames = ParamNames(default=self.n)
if self.paramNames:
self._getParamIndices()
self.needs_update = True
def setParamNames(self, names=None):
"""
Sets the names of the params.
:param names: Either a :class:`~.paramnames.ParamNames` object, the name of a .paramnames file to load, a list
of name strings, otherwise use default names (param1, param2...).
"""
self.paramNames = None
if isinstance(names, ParamNames):
self.paramNames = deepcopy(names)
elif isinstance(names, six.string_types):
self.paramNames = ParamNames(names)
elif names is not None:
self.paramNames = ParamNames(names=names)
elif self.samples is not None:
self.paramNames = ParamNames(default=self.n)
if self.paramNames:
self._getParamIndices()
self.needs_update = True
d = 0
while True:
try:
a = a[0]
d += 1
except:
return d
dim = array_dimension(files_or_samples)
if dim in [1, 2]:
self.chains = None
self.setSamples(slice_or_none(files_or_samples, ignore_lines),
slice_or_none(weights, ignore_lines),
slice_or_none(loglikes, ignore_lines), self.min_weight_ratio)
if self.paramNames is None:
self.paramNames = ParamNames(default=self.n)
nchains = 1
elif dim == 3:
for i, samples_i in enumerate(files_or_samples):
self.chains.append(WeightedSamples(
samples=samples_i, loglikes=None if loglikes is None else loglikes[i],
weights=None if weights is None else weights[i], **WSkwargs))
if self.paramNames is None:
self.paramNames = ParamNames(default=self.chains[0].n)
nchains = len(self.chains)
else:
raise ValueError('samples or files must be array of samples, or a list of arrays or files')
self._weightsChanged()
return nchains > 0
def setParamNames(self, names=None):
"""
Sets the names of the params.
:param names: Either a :class:`~.paramnames.ParamNames` object, the name of a .paramnames file to load, a list
of name strings, otherwise use default names (param1, param2...).
"""
self.paramNames = None
if isinstance(names, ParamNames):
self.paramNames = deepcopy(names)
elif isinstance(names, six.string_types):
self.paramNames = ParamNames(names)
elif names is not None:
self.paramNames = ParamNames(names=names)
elif self.samples is not None:
self.paramNames = ParamNames(default=self.n)
if self.paramNames:
self._getParamIndices()
self.needs_update = True