<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_weights(self):
 """Returns weights used for collision matrix and |X> and |f> self._rot_grid_points : ndarray shape=(ir_grid_points, point_operations), dtype='uintp' r_gps : grid points of arms of k-star with duplicates len(r_gps) == order of crystallographic point group len(unique(r_gps)) == number of arms of the k-star Returns ------- weights : list sqrt(g_k)/|g|, where g is the crystallographic point group and g_k is the number of arms of k-star. """

        weights = []
        n = float(self._rot_grid_points.shape[1])
        for r_gps in self._rot_grid_points:
            weights.append(np.sqrt(len(np.unique(r_gps)) / n))
        return weights