code: def empty(shape, dtype="float32", ctx=context(1, 0)):
      """Create an empty array given shape and device
  
      Parameters
      ----------
      shape : tuple of int
          The shape of the array
  
      dtype : type or str
          The data type of the array.
  
      ctx : DGLContext
          The context of the array
  
      Returns
      -------
      arr : dgl.nd.NDArray
          The array dgl supported.
      """
      shape = c_array(dgl_shape_index_t, shape)
      ndim = ctypes.c_int(len(shape))
      handle = DGLArrayHandle()
      dtype = DGLDataType(dtype)
      check_call(
          _LIB.DGLArrayAlloc(
              shape,
              ndim,
              ctypes.c_int(dtype.type_code),
              ctypes.c_int(dtype.bits),
              ctypes.c_int(dtype.lanes),
              ctx.device_type,
              ctx.device_id,
              ctypes.byref(handle),
          )
      )
      return _make_array(handle, False)
  
imports: from __future__ import absolute_import
  import ctypes
  import sys
  import numpy
  from .base import _FFI_MODE, _LIB, c_array, c_str, check_call, string_types
  from .runtime_ctypes import dgl_shape_index_t, DGLArray, DGLArrayHandle, DGLContext, DGLDataType, TypeCode
label_desc: Use image node_id 3 for calling a global function with example usage: empty(shape, dtype, ctx) and returns: _make_array