String & List - slist.py

This page documents MatSimPy functions relating to handling strings and lists.

trim_nums

Adapted from web resource. 1

def trim_nums(string_name, num_pos = 0)
This allows integer values to be picked out from filenames. A specified integer value is used as an index to return an integer found in the filepath.

Parameters:

  • string_name (str): Path which possibly contains integer elements.
  • num_pos (int): Position of desired integer from parsed string, default 0.

Returns:

  • (int): The desired integer value from the file path.

Example:

  trim_nums("\home\file_1.txt")
  1
  trim_nums("\home\file_1_2.txt", num_pos = 1)
  "File has more than one number entry"
  2

pyargmax

Adapted from web resource. 2

def pyargmax(ls)
Find the argmax in a python list of numbers.

Parameters:

  • ls (list): A list of numbers.

Returns:

  • (int): The index of the item with the maximum value in the list.

strainer

Adapted from web resource. 3

def strainer(someList, indices)
Takes a list and extracts a sub-list containing only entries found at the indices provided. Useful for working with lists of objects that cannot simply be converted to numpy arrays or pandas dataframes.

Parameters:

  • someList (list): A list of objects that cannot simply be converted to np arrays or pd dataframes.
  • indices (list): A list of integer valued indices to be extracted from another list.

Returns:

  • (list): A version of the input list containing only objects found at the indices provided.

repeatedDataSampler

def repeatedDataSampler(inList, reps, maxReps)
Take a list inList made of consistently-sized ordered data groupings with size maxReps and containing len(inList)/maxReps groups. This function then subsamples reps entries from each group.

Parameters:

  • inList (list): A list of consistently-sized ordered groupings
  • reps (int): The desired number of repeats in the final list.
  • maxReps (int): The number of repeats found for each list element in the input list.

Returns:

  • (list): A list containing a reduced number of repeats.

Example:

  repeatDataSampler(['A1', 'A2', 'A3', 'B1', 'B2', 'B3'], 1, 3)
  ['A1', 'B1']

index_mapper

Borrows from web resource. 4

def index_mapper(stateSet, tranSet, uniqueSet)
Takes arrays of states, transition types, and unique states and returns a mapping between the states present and the unique state indices.

Parameters:

  • stateSet (array): An array containing the unique compositions of each state (row), where each column represents a particular type.
  • tranSet (array): An array containing transition type choices corresponding to each state (row) in stateSet.
  • uniqueSet (array): An array containing the composition of each state (row), where each column represents a particular atom type.

Returns:

  • state_mapping (array): An array that maps each state from stateSet to a unique state index from uniqueSet and indicates the transition type.

chopper

def chopper(big_list, cpus)
This takes in a list and the number of pool processes/cpus you want to run on. It produces a list of lists of indices such that you have all indices evenly distributed across each subprocessor.

Parameters:

  • big_list (list): A list of objects to split into sublists.
  • cpus (int): The number of cpus/processes available to divide big_list over.

Returns:

  • list_o_lists (list): A list of lists made by separating big_list across cpus sublists as evenly as possible.

Footnotes

  1. Adapted from link 

  2. Adapted from link 

  3. Adapted from link 

  4. Borrows from link