<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def subsample(self, rate):
 """Returns a subsampled version of the NormalCloud. Parameters rate : int Only every rate-th element of the NormalCloud is returned. Returns ------- :obj:`RateCloud` A subsampled point cloud with N / rate total samples. Raises ------ ValueError If rate is not a positive integer. """

        if type(rate) != int and rate < 1:
            raise ValueError('Can only subsample with strictly positive integer rate')
        subsample_inds = np.arange(self.num_points)[::rate]
        subsampled_data = self._data[:,subsample_inds]
        return NormalCloud(subsampled_data, self._frame)