code: def create_rank1_data(symmetric=False):
      """
      Returns 5x5 rank1 matrix with missing element at index (1, 2)
      """
      x = np.array([1, 2, 3, 4, 5], dtype=float)
      y = np.array([0.1, -0.1, 0.2, -0.2, 0.02])
      XY = np.outer(x, y)
      XY_missing = XY.copy()
      # drop one entry
      XY_missing[1, 2] = np.nan
  
      if not symmetric:
          return XY, XY_missing
  
      # make a symmetric matrix
      XYXY = XY.T.dot(XY)
  
      # drop one entry
      XYXY_missing = XYXY.copy()
      XYXY_missing[1, 2] = np.nan
      return XYXY, XYXY_missing
  
imports: from fancyimpute import NuclearNormMinimization
  import numpy
  from low_rank_data import XY, XY_incomplete, missing_mask
  from common import reconstruction_error
label_desc: Use image node_id 1 for calling a global function with example usage: create_rank1_data(symmetric) and returns: XYXY,  XYXY_missing, XY,  XY_missing