Commons#
The policyengine_core.commons
module contains a number of classes and functions that are used throughout the rest of the library.
formulas#
apply_thresholds#
- policyengine_core.commons.formulas.apply_thresholds(input: ndarray[Any, dtype[float]], thresholds: Sequence[float], choices: Sequence[float]) ndarray[Any, dtype[float]] [source]#
Makes a choice based on an input and thresholds.
From a list of
choices
, this function selects one of these values based on a list of inputs, depending on the value of eachinput
within a list ofthresholds
.- Parameters:
input – A list of inputs to make a choice from.
thresholds – A list of thresholds to choose.
choices – A list of the possible values to choose from.
- Returns:
A list of the values chosen.
- Return type:
numpy.ndarray
offloat
- Raises:
AssertionError – When the number of
thresholds
(t) and the number of choices (c) are not either t == c or t == c - 1.
Examples
>>> input = numpy.array([4, 5, 6, 7, 8]) >>> thresholds = [5, 7] >>> choices = [10, 15, 20] >>> apply_thresholds(input, thresholds, choices) array([10, 10, 15, 15, 20])
concat#
- policyengine_core.commons.formulas.concat(this: Sequence[str], that: Sequence[str]) ndarray[Any, dtype[str]] [source]#
Concatenates the values of two arrays.
- Parameters:
this – An array to concatenate.
that – Another array to concatenate.
- Returns:
An array with the concatenated values.
- Return type:
numpy.ndarray
offloat
Examples
>>> this = ["this", "that"] >>> that = numpy.array([1, 2.5]) >>> concat(this, that) array(['this1.0', 'that2.5']...)
switch#
- policyengine_core.commons.formulas.switch(conditions: ndarray[Any, dtype[Any]], value_by_condition: Dict[float, T]) ndarray[Any, dtype[T]] [source]#
Mimicks a switch statement.
Given an array of conditions, returns an array of the same size, replacing each condition item with the matching given value.
- Parameters:
conditions – An array of conditions.
value_by_condition – Values to replace for each condition.
- Returns:
An array with the replaced values.
- Return type:
numpy.ndarray
- Raises:
AssertionError – When
value_by_condition
is empty.
Examples
>>> conditions = numpy.array([1, 1, 1, 2]) >>> value_by_condition = {1: 80, 2: 90} >>> switch(conditions, value_by_condition) array([80, 80, 80, 90])