<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_nehrp_classes(self, sites):
 """ Site classification threshholds from Section 4 "Site correction coefficients" p. 205. Note that site classes E and F are not supported. """


        classes = sorted(self.NEHRP_VS30_UPPER_BOUNDS.keys())
        bounds = [self.NEHRP_VS30_UPPER_BOUNDS[item] for item in classes]
        bounds = np.reshape(np.array(bounds), (-1, 1))
        vs30s = np.reshape(sites.vs30, (1, -1))
        site_classes = np.choose((vs30s < bounds).sum(axis=0) - 1, classes)

        return site_classes.astype('object')