def __str__(self): desc = "Datamat with %i elements and the following data fields:\n" % ( len(self)) desc += "%s | %s | %s | %s\n" % ('Field Name'.rjust(20), 'Length'.center(13), 'Type'.center(10), 'Values'.center(20)) desc += "---------------------+---------------+------------+----------------\n" tmp_fieldnames = self._fields[:] tmp_fieldnames.sort() max_field_val_len = 40 for field in tmp_fieldnames: value_str = '?' dat = self.__dict__[field] if len(self) >= 100000: value_str = 'N/A' elif not dat.dtype == np.object: unique_vals = np.unique(dat) if len(unique_vals) > 5: value_str = '%d unique'%(len(unique_vals)) elif len(str(unique_vals)) > max_field_val_len: per_val_len = (max_field_val_len // len(unique_vals))-1 if isinstance(unique_vals[0], str) or isinstance(unique_vals[0], unicode): value_str = str(np.array([snip_string_middle(str(el),per_val_len, '..') for el in unique_vals])) else: value_str = snip_string_middle(str(unique_vals), max_field_val_len, '..') else: value_str = str(unique_vals) else: #object array if not isinstance(dat[0], np.ndarray): value_str = type(dat[0]).__name__ else: value_str = str(dat[0].dtype)+' arrays' field_display_name = snip_string_middle(field, 20) desc += "%s | %s | %s | %s\n" % (field_display_name.rjust(20), str(len(dat)).center(13), str(dat.dtype).center(10), str(value_str).center(20)) desc += "---------------------+---------------+------------+----------------\n" desc += "%s | %s\n" % ('Parameter Name'.rjust(20), 'Value'.ljust(20)) desc += "---------------------+---------------------------------------------\n" param_keys = self._parameters.keys() param_keys.sort() max_param_val_len = 13 + 3 + 10 + 3 + 20 for param in param_keys: param_display_name = snip_string_middle(param, 20) desc += '%s | %s\n' % (param_display_name.rjust(20), snip_string_middle(str(self.__dict__[param]), max_param_val_len)) return desc
def __str__(self): desc = "Datamat with %i datapoints and the following data fields:\n" % ( len(self)) desc += "%s | %s | %s | %s \n" % ('Field Name'.rjust( 20), 'Length'.center(13), 'Type'.center(10), 'Values'.center(20)) desc += "---------------------+---------------+------------+----------------\n" tmp_fieldnames = self._fields[:] tmp_fieldnames.sort() max_field_val_len = 40 for field in tmp_fieldnames: if not self.__dict__[field].dtype == np.object and len( self) < 100000: num_uniques = np.unique(self.__dict__[field]) if len(num_uniques) > 5: num_uniques = '%d unique' % (len(num_uniques)) elif len(str(num_uniques)) > max_field_val_len: per_val_len = (max_field_val_len // len(num_uniques)) - 1 if isinstance(num_uniques[0], str) or isinstance( num_uniques[0], unicode): num_uniques = np.array([ snip_string_middle(str(el), per_val_len, '..') for el in num_uniques ]) else: num_uniques = 'N/A' field_display_name = snip_string_middle(field, 20) desc += "%s | %s | %s | %s \n" % ( field_display_name.rjust(20), str(len( self.__dict__[field])).center(13), str(self.__dict__[field].dtype).center(10), str(num_uniques).center(20)) desc += "---------------------+---------------+------------+----------------\n" desc += "%s | %s\n" % ('Parameter Name'.rjust(20), 'Value'.ljust(20)) desc += "---------------------+---------------------------------------------\n" param_keys = self._parameters.keys() param_keys.sort() max_param_val_len = 13 + 3 + 10 + 3 + 20 for param in param_keys: param_display_name = snip_string_middle(param, 20) desc += '%s | %s \n' % (param_display_name.rjust(20), snip_string_middle( str(self.__dict__[param]), max_param_val_len)) return desc
def __str__(self): desc = "Datamat with %i datapoints and the following data fields:\n" % ( len(self)) desc += "%s | %s | %s | %s \n" % ('Field Name'.rjust(20), 'Length'.center(13), 'Type'.center(10), 'Values'.center(20)) desc += "---------------------+---------------+------------+----------------\n" tmp_fieldnames = self._fields[:] tmp_fieldnames.sort() max_field_val_len = 40 for field in tmp_fieldnames: if not self.__dict__[field].dtype == np.object and len(self) < 100000: num_uniques = np.unique(self.__dict__[field]) if len(num_uniques) > 5: num_uniques = '%d unique'%(len(num_uniques)) elif len(str(num_uniques)) > max_field_val_len: per_val_len = (max_field_val_len // len(num_uniques))-1 if isinstance(num_uniques[0], str) or isinstance(num_uniques[0], unicode): num_uniques = np.array([snip_string_middle(str(el),per_val_len, '..') for el in num_uniques]) else: num_uniques = 'N/A' field_display_name = snip_string_middle(field, 20) desc += "%s | %s | %s | %s \n" % (field_display_name.rjust(20), str(len(self.__dict__[field])).center(13), str(self.__dict__[field].dtype).center(10), str(num_uniques).center(20)) desc += "---------------------+---------------+------------+----------------\n" desc += "%s | %s\n" % ('Parameter Name'.rjust(20), 'Value'.ljust(20)) desc += "---------------------+---------------------------------------------\n" param_keys = self._parameters.keys() param_keys.sort() max_param_val_len = 13 + 3 + 10 + 3 + 20 for param in param_keys: param_display_name = snip_string_middle(param, 20) desc += '%s | %s \n' % (param_display_name.rjust(20), snip_string_middle(str(self.__dict__[param]), max_param_val_len)) return desc