code: def arraylike_to_numpy(array_like):
      
  
      orig_type = type(array_like)
  
      # Convert to np.ndarray
      if isinstance(array_like, np.ndarray):
          pass
      elif isinstance(array_like, list):
          array_like = np.array(array_like)
      elif issparse(array_like):
          array_like = array_like.toarray()
      elif isinstance(array_like, torch.Tensor):
          array_like = array_like.numpy()
      elif not isinstance(array_like, np.ndarray):
          array_like = np.array(array_like)
      else:
          msg = f"Input of type {orig_type} could not be converted to 1d " "np.ndarray"
          raise ValueError(msg)
  
      # Correct shape
      if (array_like.ndim > 1) and (1 in array_like.shape):
          array_like = array_like.flatten()
      if array_like.ndim != 1:
          raise ValueError("Input could not be converted to 1d np.array")
  
      # Convert to ints
      if any(array_like % 1):
          raise ValueError("Input contains at least one non-integer value.")
      array_like = array_like.astype(np.dtype(int))
  
      return array_like
docs: Convert a 1d array-like (e.g,. list, tensor, etc.) to an np.ndarray