class_docstr: Compressed Sparse Column matrix.
  
  This can be instantiated in several ways.
  
  ``csc_matrix(D)``
      ``D`` is a rank-2 :class:`cupy.ndarray`.
  ``csc_matrix(S)``
      ``S`` is another sparse matrix. It is equivalent to ``S.tocsc()``.
  ``csc_matrix((M, N), [dtype])``
      It constructs an empty matrix whose shape is ``(M, N)``. Default dtype
      is float64.
  ``csc_matrix((data, (row, col)))``
      All ``data``, ``row`` and ``col`` are one-dimenaional
      :class:`cupy.ndarray`.
  ``csc_matrix((data, indices, indptr))``
      All ``data``, ``indices`` and ``indptr`` are one-dimenaional
      :class:`cupy.ndarray`.
  
  Args:
      arg1: Arguments for the initializer.
      shape (tuple): Shape of a matrix. Its length must be two.
      dtype: Data type. It must be an argument of :class:`numpy.dtype`.
      copy (bool): If ``True``, copies of given arrays are always used.
  
  .. seealso::
      :class:`scipy.sparse.csc_matrix`
class_docstr_tok: ["Compressed","Sparse","Column","matrix",".","This","can","be","instantiated","in","several","ways",".","``","csc_matrix","(","D",")","``","``","D","``","is","a","rank-2",":","class",":","`","cupy.ndarray","`",".","``","csc_matrix","(","S",")","``","``","S","``","is","another","sparse","matrix",".","It","is","equivalent","to","``","S.tocsc","(",")","``",".","``","csc_matrix","(","(","M",",","N",")",",","[","dtype","]",")","``","It","constructs","an","empty","matrix","whose","shape","is","``","(","M",",","N",")","``",".","Default","dtype","is","float64",".","``","csc_matrix","(","(","data",",","(","row",",","col",")",")",")","``","All","``","data","``",",","``","row","``","and","``","col","``","are","one-dimenaional",":","class",":","`","cupy.ndarray","`",".","``","csc_matrix","(","(","data",",","indices",",","indptr",")",")","``","All","``","data","``",",","``","indices","``","and","``","indptr","``","are","one-dimenaional",":","class",":","`","cupy.ndarray","`",".","Args",":","arg1",":","Arguments","for","the","initializer",".","shape","(","tuple",")",":","Shape","of","a","matrix",".","Its","length","must","be","two",".","dtype",":","Data","type",".","It","must","be","an","argument","of",":","class",":","`","numpy.dtype","`",".","copy","(","bool",")",":","If","``","True","``",",","copies","of","given","arrays","are","always","used",".","..","seealso",":",":",":","class",":","`","scipy.sparse.csc_matrix","`"]
docstr: Returns a dense matrix representing the same value.
  
  Args:
      order ({'C', 'F', None}): Whether to store data in C (row-major)
          order or F (column-major) order. Default is C-order.
      out: Not supported.
  
  Returns:
      cupy.ndarray: Dense array representing the same matrix.
  
  .. seealso:: :meth:`scipy.sparse.csc_matrix.toarray`
docstr_tok: ["Returns","a","dense","matrix","representing","the","same","value",".","Args",":","order","(","{","'","C","'",",","'","F","'",",","None","}",")",":","Whether","to","store","data","in","C","(","row-major",")","order","or","F","(","column-major",")","order",".","Default","is","C-order",".","out",":","Not","supported",".","Returns",":","cupy.ndarray",":","Dense","array","representing","the","same","matrix",".","..","seealso",":",":",":","meth",":","`","scipy.sparse.csc_matrix.toarray","`"]
code: def toarray(self, order=None, out=None):
      """Returns a dense matrix representing the same value.
  
      Args:
          order ({'C', 'F', None}): Whether to store data in C (row-major)
              order or F (column-major) order. Default is C-order.
          out: Not supported.
  
      Returns:
          cupy.ndarray: Dense array representing the same matrix.
  
      .. seealso:: :meth:`scipy.sparse.csc_matrix.toarray`
  
      """
      from cupyx import cusparse
  
      if order is None:
          order = "C"
      order = order.upper()
      if self.nnz == 0:
          return cupy.zeros(
              shape=self.shape, dtype=self.dtype, order=order
          )
  
      x = self.copy()
      x.has_canonical_format = False  # need to enforce sum_duplicates
      x.sum_duplicates()
      if cusparse.check_availability("sparseToDense") and (
          not runtime.is_hip or x.nnz > 0
      ):
          # On HIP, nnz=0 is problematic as of ROCm 4.2.0
          y = cusparse.sparseToDense(x)
          if order == "F":
              return y
          elif order == "C":
              return cupy.ascontiguousarray(y)
          else:
              raise ValueError("order not understood")
      else:
          # csc2dense and csr2dense returns F-contiguous array.
          if order == "C":
              # To return C-contiguous array, it uses transpose.
              return cusparse.csr2dense(x.T).T
          elif order == "F":
              return cusparse.csc2dense(x)
          else:
              raise ValueError("order not understood")
  
imports: import cupy
  from cupy_backends.cuda.api import driver
  from cupy_backends.cuda.api import runtime
  import cupyx.scipy.sparse
  from cupyx.scipy.sparse import _base
  from cupyx.scipy.sparse import _compressed
label_desc: Use image node_id 7 for calling the csc_matrix obj's underlying member method code with example usage: obj.toarray(order, out) and returns: cupy, y, cusparse, cupy, cusparse