code: def __init__(self, shape, object_refs=None):
      self.shape = shape
      self.ndim = len(shape)
      self.num_blocks = [
          int(np.ceil(1.0 * a / BLOCK_SIZE)) for a in self.shape
      ]
      if object_refs is not None:
          self.object_refs = object_refs
      else:
          self.object_refs = np.empty(self.num_blocks, dtype=object)
      if self.num_blocks != list(self.object_refs.shape):
          raise Exception(
              "The fields `num_blocks` and `object_refs` are "
              "inconsistent, `num_blocks` is {} and `object_refs` "
              "has shape {}".format(
                  self.num_blocks, list(self.object_refs.shape)
              )
          )
  
imports: import numpy
  import ray
  import ray.experimental.array.remote
label_desc: Use image node_id 1 to create a new DistArray object  with example: obj = DistArray(shape, object_refs)