class_docstr: Return a sparse having random values from a Poisson density
  with mean from the input.
  
  WARNING: This Op is NOT deterministic, as calling it twice with the
  same inputs will NOT give the same result. This is a violation of
  PyTensor's contract for Ops
  
  :param x: Sparse matrix.
  
  :return: A sparse matrix of random integers of a Poisson density
           with mean of `x` element wise.
class_docstr_tok: ["Return","a","sparse","having","random","values","from","a","Poisson","density","with","mean","from","the","input",".","WARNING",":","This","Op","is","NOT","deterministic",",","as","calling","it","twice","with","the","same","inputs","will","NOT","give","the","same","result",".","This","is","a","violation","of","PyTensor","'s","contract","for","Ops",":","param","x",":","Sparse","matrix",".",":","return",":","A","sparse","matrix","of","random","integers","of","a","Poisson","density","with","mean","of","`","x","`","element","wise","."]
code: def perform(self, node, inputs, outputs):
      (x,) = inputs
      (out,) = outputs
      assert _is_sparse(x)
      assert x.format in ("csr", "csc")
      out[0] = x.copy()
      out[0].data = np.asarray(
          np.random.poisson(out[0].data), dtype=x.dtype
      )
      out[0].eliminate_zeros()
  
imports: import numpy
  import scipy.sparse
  import pytensor
  from pytensor import tensor
  from pytensor.graph.basic import Apply
  from pytensor.graph.op import Op
  from pytensor.sparse.basic import Remove0, SparseTensorType, _is_sparse, as_sparse_variable, remove0
  from pytensor.tensor.type import discrete_dtypes, float_dtypes
label_desc: Use image node_id 2 for calling the Poisson obj's underlying member method code with example usage: obj.perform(node, inputs, outputs) without return types