<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_data(self):
 """ Loads image and label data from specified directory path. :return: Dataset object containing image and label data. """

        images = list()
        labels = list()
        emotion_index_map = dict()
        label_directories = [dir for dir in os.listdir(self.datapath) if not dir.startswith('.')]
        for label_directory in label_directories:
            if self.target_emotion_map:
                if label_directory not in self.target_emotion_map.keys():    continue
            self._add_new_label_to_map(label_directory, emotion_index_map)
            label_directory_path = self.datapath + '/' + label_directory

            if self.time_delay:
                self._load_series_for_single_emotion_directory(images, label_directory, label_directory_path, labels)
            else:
                image_files = [image_file for image_file in os.listdir(label_directory_path) if not image_file.startswith('.')]
                self._load_images_from_directory_to_array(image_files, images, label_directory, label_directory_path, labels)

        vectorized_labels = self._vectorize_labels(emotion_index_map, labels)
        self._check_data_not_empty(images)
        return self._load_dataset(np.array(images), np.array(vectorized_labels), emotion_index_map)