def extend_order_and_value(order, value, order_0_extensors = (1, 20), order_1_extensors = (0, 15)):
## Return order and value extended by the values given in
## order_0_extensors or order_1_extensors depending on last order's value.
## the extensors have the form: (order_value, values_value) for the cases
## 0 or 1 as last value in order.
# ensure that order and value are numpy arrays!
order, value = np.array(order), np.array(value)
if order[-1] == 0:
order_val, value_val = order_0_extensors
elif order[-1] == 1:
order_val, values_val = order_1_extensors
else:
return order, value # return unchanged or raise error
return np.concatenate([order, np.array([order_val])]), np.concatenate([values, np.array([values_val])])
像这样使用它:
import numpy as np
order = np.array([0,1,0,0,0])
order1 = np.array([0,1,0,0,1])
value= np.array([10,55,30,3,10])
new_order, new_value = extend_order_and_value(order, value)
new_order
## array([0, 1, 0, 0, 0, 1])
new_value
## array([10, 55, 30, 3, 10, 20])
new_order1, new_value1 = extend_order_and_value(order1, value)
new_order1
## array([0, 1, 0, 0, 1, 0])
new_value1
## array([10, 55, 30, 3, 10, 15]))