class_docstr: Dictionary-like object representing an SALib Problem specification.
  
  Attributes
  ----------
  samples : np.array, of generated samples
  results : np.array, of evaluations (i.e., model outputs)
  analysis : np.array or dict, of sensitivity indices
code: def samples(self, vals):
      cols = vals.shape[1]
      if cols != self["num_vars"]:
          msg = "Mismatched sample size: Expected "
          msg += "{} cols, got {}".format(self["num_vars"], cols)
          raise ValueError(msg)
  
      self._samples = vals
  
      # Clear results to avoid confusion
      self._results = None
  
imports: import warnings
  import importlib
  from types import MethodType
  from functools import partial, wraps
  from multiprocess import Pool, cpu_count
  import numpy
  import SALib.sample
  import SALib.analyze
  from SALib.util import avail_approaches
  from SALib.util.results import ResultDict
label_desc: Use image node_id 3 for calling the ProblemSpec obj's underlying member method code with example usage: obj.samples(vals) without return types