Source code for Fireworks.utils.utils

from functools import lru_cache
import numpy as np

[docs]@lru_cache(maxsize=32) def one_hot(index, max): """ This converts an integer to a one-hot vector, which is a format that is often used by statistical classifiers to represent predictions. Args: - index: The index in the one-hot array to set as 1 - max: The size of the one-hot array. Returns: - hot: A one-hot array, which consists of all 0s except a 1 at a certain index which corresponds to the label classification. """ hot = np.zeros(max) hot[index] = 1 return hot
[docs]def index_to_list(index): """ Converts an index to a list. This is used by some of the methods in message.py. """ if type(index) is slice: index = slice_to_list(index) if type(index) is int: index = [index] return index
[docs]def slice_to_list(s): """ Converts a slice object to a list of indices. This is used by some of the methods in message.py. """ step = s.step or 1 start = s.start stop = s.stop return [x for x in range(start,stop,step)]
[docs]def get_indices(values, listlike): """ Returns the indices in litlike that match elements in values. This is used by some of the methods in message.py. """ return [i for i, l in zip(count(), listlike) if l in values]
[docs]def slice_length(orange): """ Returns the length of the index corresponding to a slice. For example, slice(0,4,2) has a length of two. This is used by some of the methods in message.py. """ t = type(orange) if t is slice: if orange.step: return int((orange.stop-orange.start)/orange.step) # This will also work for negative steps else: # Step size is 1 by default return orange.stop - orange.start else: return len(orange)
[docs]def subset_dict(dictionary, keys): """ Returns a dict that contains all key,value pairs in dictionary where the key is one of the provided keys. This is used by some of the methods in message.py. """ keys = set(keys) return {key: value for key, value in dictionary.items() if key in keys}