Skip to content

Commit

Permalink
Removed numpy as hard dependency.
Browse files Browse the repository at this point in the history
  • Loading branch information
smelandr committed Aug 1, 2017
1 parent d99d1a7 commit b590715
Showing 1 changed file with 86 additions and 30 deletions.
116 changes: 86 additions & 30 deletions nmrstarlib/noise.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,36 +10,92 @@ class for adding noise values to :class:`~nmrstarlib.plsimulator.Peak`
dimensions within a :class:`~nmrstarlib.plsimulator.PeakList`.
"""

import numpy as np


distributions = {"normal": {"function": np.random.normal, "parameters": ["loc", "scale"]},
"beta": {"function": np.random.beta, "parameters": ["a", "b"]},
"binomial": {"function": np.random.binomial, "parameters": ["n", "p"]},
"chisquare": {"function": np.random.chisquare, "parameters": ["df"]},
"exponential": {"function": np.random.exponential, "parameters": ["scale"]},
"f": {"function": np.random.f, "parameters": ["dfnum", "dfden"]},
"gamma": {"function": np.random.gamma, "parameters": ["shape", "scale"]},
"geometric": {"function": np.random.geometric, "parameters": ["p"]},
"gumbel": {"function": np.random.gumbel, "parameters": ["loc", "scale"]},
"hypergeometric": {"function": np.random.hypergeometric, "parameters": ["ngood", "nbad", "nsample"]},
"laplace": {"function": np.random.laplace, "parameters": ["loc", "scale"]},
"logistic": {"function": np.random.logistic, "parameters": ["loc", "scale"]},
"lognormal": {"function": np.random.lognormal, "parameters": ["mean", "sigma"]},
"logseries": {"function": np.random.logseries, "parameters": ["p"]},
"negative_binomial": {"function": np.random.negative_binomial, "parameters": ["n", "p"]},
"noncentral_chisquare": {"function": np.random.noncentral_chisquare, "parameters": ["df", "nonc"]},
"noncentral_f": {"function": np.random.noncentral_f, "parameters": ["dfnum", "dfden", "nonc"]},
"pareto": {"function": np.random.pareto, "parameters": ["a"]},
"poisson": {"function": np.random.poisson, "parameters": ["lam"]},
"power": {"function": np.random.power, "parameters": ["a"]},
"rayleigh": {"function": np.random.rayleigh, "parameters": ["scale"]},
"triangular": {"function": np.random.triangular, "parameters": ["left", "mode", "right"]},
"uniform": {"function": np.random.uniform, "parameters": ["low", "high"]},
"vonmises": {"function": np.random.vonmises, "parameters": ["mu", "kappa"]},
"wald": {"function": np.random.wald, "parameters": ["mean", "scale"]},
"weibull": {"function": np.random.weibull, "parameters": ["a"]},
"zipf": {"function": np.random.zipf, "parameters": ["a"]}}
import random


distributions = {"uniform": {"function": random.uniform,
"parameters": ["low", "high"]},
"triangular": {"function": random.triangular,
"parameters": ["left", "right", "mode"]},
"beta": {"function": random.betavariate,
"parameters": ["a", "b"]},
"exponential": {"function": random.expovariate,
"parameters": ["scale"]},
"gamma": {"function": random.gammavariate,
"parameters": ["shape", "scale"]},
"gauss": {"function": random.gauss,
"parameters": ["mu", "sigma"]},
"normal": {"function": random.gauss,
"parameters": ["loc", "scale"]},
"lognormal": {"function": random.lognormvariate,
"parameters": ["mean", "sigma"]},
"vonmises": {"function": random.vonmisesvariate,
"parameters": ["mu", "kappa"]},
"pareto": {"function": random.paretovariate,
"parameters": ["a"]}}

try:
import numpy as np

np_distributions = {"normal": {"function": np.random.normal,
"parameters": ["loc", "scale"]},
"beta": {"function": np.random.beta,
"parameters": ["a", "b"]},
"binomial": {"function": np.random.binomial,
"parameters": ["n", "p"]},
"chisquare": {"function": np.random.chisquare,
"parameters": ["df"]},
"exponential": {"function": np.random.exponential,
"parameters": ["scale"]},
"f": {"function": np.random.f,
"parameters": ["dfnum", "dfden"]},
"gamma": {"function": np.random.gamma,
"parameters": ["shape", "scale"]},
"geometric": {"function": np.random.geometric,
"parameters": ["p"]},
"gumbel": {"function": np.random.gumbel,
"parameters": ["loc", "scale"]},
"hypergeometric": {"function": np.random.hypergeometric,
"parameters": ["ngood", "nbad", "nsample"]},
"laplace": {"function": np.random.laplace,
"parameters": ["loc", "scale"]},
"logistic": {"function": np.random.logistic,
"parameters": ["loc", "scale"]},
"lognormal": {"function": np.random.lognormal,
"parameters": ["mean", "sigma"]},
"logseries": {"function": np.random.logseries,
"parameters": ["p"]},
"negative_binomial": {"function": np.random.negative_binomial,
"parameters": ["n", "p"]},
"noncentral_chisquare": {"function": np.random.noncentral_chisquare,
"parameters": ["df", "nonc"]},
"noncentral_f": {"function": np.random.noncentral_f,
"parameters": ["dfnum", "dfden", "nonc"]},
"pareto": {"function": np.random.pareto,
"parameters": ["a"]},
"poisson": {"function": np.random.poisson,
"parameters": ["lam"]},
"power": {"function": np.random.power,
"parameters": ["a"]},
"rayleigh": {"function": np.random.rayleigh,
"parameters": ["scale"]},
"triangular": {"function": np.random.triangular,
"parameters": ["left", "mode", "right"]},
"uniform": {"function": np.random.uniform,
"parameters": ["low", "high"]},
"vonmises": {"function": np.random.vonmises,
"parameters": ["mu", "kappa"]},
"wald": {"function": np.random.wald,
"parameters": ["mean", "scale"]},
"weibull": {"function": np.random.weibull,
"parameters": ["a"]},
"zipf": {"function": np.random.zipf,
"parameters": ["a"]}}

distributions.update(np_distributions)

except ImportError:
pass


class NoiseGenerator(object):
Expand Down

0 comments on commit b590715

Please sign in to comment.