code: def soft_thresholding(tensor, threshold):
      """Soft-thresholding operator
  
          sign(tensor) * max[abs(tensor) - threshold, 0]
  
      Parameters
      ----------
      tensor : ndarray
      threshold : float or ndarray with shape tensor.shape
          * If float the threshold is applied to the whole tensor
          * If ndarray, one threshold is applied per elements, 0 values are ignored
  
      Returns
      -------
      ndarray
          thresholded tensor on which the operator has been applied
  
      Examples
      --------
      Basic shrinkage
  
      >>> import tensorly.backend as T
      >>> from tensorly.tenalg.proximal import soft_thresholding
      >>> tensor = tl.tensor([[1, -2, 1.5], [-4, 3, -0.5]])
      >>> soft_thresholding(tensor, 1.1)
      array([[ 0. , -0.9,  0.4],
             [-2.9,  1.9,  0. ]])
  
  
      Example with missing values
  
      >>> mask = tl.tensor([[0, 0, 1], [1, 0, 1]])
      >>> soft_thresholding(tensor, mask*1.1)
      array([[ 1. , -2. ,  0.4],
             [-2.9,  3. ,  0. ]])
  
      See also
      --------
      svd_thresholding : SVD-thresholding operator
      """
      return tl.sign(tensor) * tl.clip(
          tl.abs(tensor) - threshold, a_min=0
      )
  
file_path: tensorly/tensorly/tenalg/proximal.py
imports: import tensorly
  import numpy
label_desc: Use image node_id 12 for calling a global function with example usage: soft_thresholding(tensor, threshold) and returns: unknown