Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
    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
Ejemplo n.º 3
0
 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