code: def inv(A):
      """
      Compute the inverse of a sparse matrix
  
      Parameters
      ----------
      A : (M,M) ndarray or sparse matrix
          square matrix to be inverted
  
      Returns
      -------
      Ainv : (M,M) ndarray or sparse matrix
          inverse of `A`
  
      Notes
      -----
      This computes the sparse inverse of `A`.  If the inverse of `A` is expected
      to be non-sparse, it will likely be faster to convert `A` to dense and use
      scipy.linalg.inv.
  
      Examples
      --------
      >>> from scipy.sparse import csc_matrix
      >>> from scipy.sparse.linalg import inv
      >>> A = csc_matrix([[1., 0.], [1., 2.]])
      >>> Ainv = inv(A)
      >>> Ainv
      <2x2 sparse matrix of type '<class 'numpy.float64'>'
          with 3 stored elements in Compressed Sparse Column format>
      >>> A.dot(Ainv)
      <2x2 sparse matrix of type '<class 'numpy.float64'>'
          with 2 stored elements in Compressed Sparse Column format>
      >>> A.dot(Ainv).todense()
      matrix([[ 1.,  0.],
              [ 0.,  1.]])
  
      .. versionadded:: 0.12.0
  
      """
      # check input
      if not scipy.sparse.isspmatrix(A):
          raise TypeError("Input must be a sparse matrix")
  
      I = speye(A.shape[0], A.shape[1], dtype=A.dtype, format=A.format)
      Ainv = spsolve(A, I)
      return Ainv
  
imports: from __future__ import division, print_function, absolute_import
  import math
  import numpy
  import scipy.special
  from scipy.linalg.basic import solve, solve_triangular
  from scipy.sparse.base import isspmatrix
  from scipy.sparse.construct import eye
  from scipy.sparse.linalg import spsolve
  import scipy.sparse
  import scipy.sparse.linalg
  from scipy.sparse.linalg.interface import LinearOperator
label_desc: Use image node_id 1 for calling a global function with example usage: inv(A) and returns: Ainv