code: def rot(inputArray, theta=0, pc=(0, 0)):
          
          if not isinstance(inputArray, np.ndarray):
              inputArray = np.array(inputArray)
  
          if not isinstance(pc, np.ndarray):
              pc = np.array(pc)
  
          theta = theta / 180.0 * np.pi  # degree to rad
          mr = np.array([
              [np.cos(theta), -np.sin(theta)],
              [np.sin(theta), np.cos(theta)],
          ])
          return np.dot(mr, (inputArray - pc).transpose()).transpose() + pc.transpose()
docs: rotate input array with angle of theta
  
          :param inputArray: input array or list,
                             e.g. np.array([[0,0],[0,1],[0,2]]) or [[0,0],[0,1],[0,2]]
          :param theta: rotation angle in degree
          :param pc: central point coords (x,y) regarding to rotation
          :return: rotated numpy array