code: def sample(self, fraction, seed=None, exact=False):
          
          if (fraction > 1 or fraction < 0):
              raise ValueError('Invalid sampling rate: ' + str(fraction))
          if (len(self) == 0):
              return SArray()
          if seed is None:
              seed = abs(hash("%0.20f" % time.time())) % (2 ** 31)
  
  
          with cython_context():
              return SArray(_proxy=self.__proxy__.sample(fraction, seed, exact))
docs: Create an SArray which contains a subsample of the current SArray.
  
          Parameters
          ----------
          fraction : float
              Fraction of the rows to fetch. Must be between 0 and 1.
              if exact is False (default), the number of rows returned is
              approximately the fraction times the number of rows.
  
          seed : int, optional
              The random seed for the random number generator.
  
          exact: bool, optional
              Defaults to False. If exact=True, an exact fraction is returned, 
              but at a performance penalty.
  
          Returns
          -------
          out : SArray
              The new SArray which contains the subsampled rows.
  
          Examples
          --------
          >>> sa = turicreate.SArray(range(10))
          >>> sa.sample(.3)
          dtype: int
          Rows: 3
          [2, 6, 9]