I am trying to make a function where if the last value of order
is 1 then the code will append 1 to orders
and then append the number 20 to the value
array as well. If the last value is 0 in order
then it will append 1 to order
and append the number 15 to value
.
JavaScript
x
6
1
import numpy as np
2
3
order = np.array([0,1,0,0,0])
4
order1 = np.array([0,1,0,0,1])
5
value= np.array([10,55,30,3,10])
6
Expected Output:
JavaScript
1
8
1
#if last element is equal to 1
2
order = np.array([0,1,0,0,0,1])
3
value= np.array([10,55,30,3,10,20])
4
5
#if last element is equal to 0
6
order1 = np.array([0,1,0,0,1,0])
7
value= np.array([10,55,30,3,10,15])
8
Advertisement
Answer
JavaScript
1
17
17
1
def extend_order_and_value(order, value, order_0_extensors = (1, 20), order_1_extensors = (0, 15)):
2
## Return order and value extended by the values given in
3
## order_0_extensors or order_1_extensors depending on last order's value.
4
## the extensors have the form: (order_value, values_value) for the cases
5
## 0 or 1 as last value in order.
6
7
# ensure that order and value are numpy arrays!
8
order, value = np.array(order), np.array(value)
9
10
if order[-1] == 0:
11
order_val, value_val = order_0_extensors
12
elif order[-1] == 1:
13
order_val, values_val = order_1_extensors
14
else:
15
return order, value # return unchanged or raise error
16
return np.concatenate([order, np.array([order_val])]), np.concatenate([values, np.array([values_val])])
17
Use it like this:
JavaScript
1
20
20
1
import numpy as np
2
3
order = np.array([0,1,0,0,0])
4
order1 = np.array([0,1,0,0,1])
5
value= np.array([10,55,30,3,10])
6
7
8
new_order, new_value = extend_order_and_value(order, value)
9
new_order
10
## array([0, 1, 0, 0, 0, 1])
11
new_value
12
## array([10, 55, 30, 3, 10, 20])
13
14
new_order1, new_value1 = extend_order_and_value(order1, value)
15
new_order1
16
## array([0, 1, 0, 0, 1, 0])
17
new_value1
18
## array([10, 55, 30, 3, 10, 15]))
19
20