class_docstr: Proximal operator of sorted L1 penalization
  
  Parameters
  ----------
  strength : `float`
      Level of penalization
  
  fdr : `float`, default=0.6
      Desired False Discovery Rate for detection of non-zeros in
      the coefficients
  
  weights_type : "bh" | "oscar", default="bh"
  
      * If "bh", we use Benjamini-Hochberg weights, under a Gaussian
        error assumption, and expect a FDR control
      * If "oscar", there is no FDR control, and we get the OSCAR
        penalization, see notes below for references
  
  range : `tuple` of two `int`, default=`None`
      Range on which the prox is applied. If `None` then the prox is
      applied on the whole vector
  
  Attributes
  ----------
  weights : `np.array`, shape=(n_coeffs,)
      The weights used in the penalization. They are automatically
      setted, depending on the ``weights_type`` and ``fdr``
      parameters.
  
  dtype : `{'float64', 'float32'}`
      Type of the arrays used.
  
  Notes
  -----
  Uses the stack-based algorithm for FastProxL1 from
  
  * SLOPE--Adaptive Variable Selection via Convex Optimization, by
    Bogdan, M. and Berg, E. van den and Sabatti, C. and Su, W. and Candes, E. J.
    arXiv preprint arXiv:1407.3824, 2014
class_docstr_tok: ["Proximal","operator","of","sorted","L1","penalization","Parameters","--","--","--","--","--","strength",":","`","float","`","Level","of","penalization","fdr",":","`","float","`",",","default=0.6","Desired","False","Discovery","Rate","for","detection","of","non-zeros","in","the","coefficients","weights_type",":","``","bh","''","|","``","oscar","''",",","default=","''","bh","''","*","If","``","bh","''",",","we","use","Benjamini-Hochberg","weights",",","under","a","Gaussian","error","assumption",",","and","expect","a","FDR","control","*","If","``","oscar","''",",","there","is","no","FDR","control",",","and","we","get","the","OSCAR","penalization",",","see","notes","below","for","references","range",":","`","tuple","`","of","two","`","int","`",",","default=","`","None","`","Range","on","which","the","prox","is","applied",".","If","`","None","`","then","the","prox","is","applied","on","the","whole","vector","Attributes","--","--","--","--","--","weights",":","`","np.array","`",",","shape=","(","n_coeffs",",",")","The","weights","used","in","the","penalization",".","They","are","automatically","setted",",","depending","on","the","``","weights_type","``","and","``","fdr","``","parameters",".","dtype",":","`","{","'float64","'",",","'float32","'","}","`","Type","of","the","arrays","used",".","Notes","--","--","-","Uses","the","stack-based","algorithm","for","FastProxL1","from","*","SLOPE","--","Adaptive","Variable","Selection","via","Convex","Optimization",",","by","Bogdan",",","M.","and","Berg",",","E.","van","den","and","Sabatti",",","C.","and","Su",",","W.","and","Candes",",","E.","J.","arXiv","preprint","arXiv:1407.3824",",","2014"]
code: def __init__(
      self,
      strength: float,
      fdr: float = 0.6,
      weights_type: str = "bh",
      range: tuple = None,
      positive: bool = False,
  ):
      Prox.__init__(self, range)
      self.strength = strength
      self.fdr = fdr
      self.weights_type = weights_type
      self.positive = positive
      self.weights = None
      self._prox = self._build_cpp_prox("float64")
  
file_path: tick/tick/prox/prox_oscar.py
imports: from tick.prox.base import Prox
  import numpy
  from .build.prox import ProxSortedL1Double
  from .build.prox import ProxSortedL1Float
  from .build.prox import WeightsType_bh, WeightsType_oscar
label_desc: Use image node_id 1 to create a new ProxSortedL1 object from inherited base classes: Prox with example: obj = ProxSortedL1(strength, fdr, weights_type, range, positive)