docs: def load_from_array(self, keys, data_array):
          """
          This loads the data contained in an array into the catalogue object
  
          :param keys:
              A list of keys explaining the content of the columns in the array
          :type list:
          """
  
          if len(keys) != np.shape(data_array)[1]:
              raise ValueError('Key list does not match shape of array!')
  
          for i, key in enumerate(keys):
              if key in self.INT_ATTRIBUTE_LIST:
                  self.data[key] = data_array[:, i].astype(int)
              else:
                  self.data[key] = data_array[:, i]
              if key not in self.TOTAL_ATTRIBUTE_LIST:
                  print('Key %s not a recognised catalogue attribute' % key)
  
          self.update_end_year()