parameters: (source_array, ctx=None, dtype=None)
return_statement: return arr
docstring: Creates an array from any object exposing the array interface.
  
      Parameters
      ----------
      source_array : array_like
          An object exposing the array interface, an object whose `__array__`
          method returns an array, or any (nested) sequence.
      ctx : Context, optional
          Device context (default is the current default context).
      dtype : str or numpy.dtype, optional
          The data type of the output array. The default dtype is ``source_array.dtype``
          if `source_array` is an `NDArray`, `float32` otherwise.
  
      Returns
      -------
      NDArray
          An `NDArray` with the same contents as the `source_array`.
docstring_summary: Creates an array from any object exposing the array interface.
docstring_tokens: Creates an array from any object exposing the array interface .
function: def array(source_array, ctx=None, dtype=None):
      """Creates an array from any object exposing the array interface.
  
      Parameters
      ----------
      source_array : array_like
          An object exposing the array interface, an object whose `__array__`
          method returns an array, or any (nested) sequence.
      ctx : Context, optional
          Device context (default is the current default context).
      dtype : str or numpy.dtype, optional
          The data type of the output array. The default dtype is ``source_array.dtype``
          if `source_array` is an `NDArray`, `float32` otherwise.
  
      Returns
      -------
      NDArray
          An `NDArray` with the same contents as the `source_array`.
      """
      if isinstance(source_array, NDArray):
          dtype = source_array.dtype if dtype is None else dtype
      else:
          dtype = mx_real_t if dtype is None else dtype
          if not isinstance(source_array, np.ndarray):
              try:
                  source_array = np.array(source_array, dtype=dtype)
              except:
                  raise TypeError('source_array must be array like object')
      arr = empty(source_array.shape, ctx, dtype)
      arr[:] = source_array
      return arr
function_tokens: def array ( source_array , ctx = None , dtype = None ) : if isinstance ( source_array , NDArray ) : dtype = source_array . dtype if dtype is None else dtype else : dtype = mx_real_t if dtype is None else dtype if not isinstance ( source_array , np . ndarray ) : try : source_array = np . array ( source_array , dtype = dtype ) except : raise TypeError ( 'source_array must be array like object' ) arr = empty ( source_array . shape , ctx , dtype ) arr [ : ] = source_array return arr