Passed
Push — master ( afb360...c5e615 )
by Simon
01:17
created

gradient_free_optimizers.conv.positions2values()   A

Complexity

Conditions 2

Size

Total Lines 10
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 8
nop 2
dl 0
loc 10
rs 10
c 0
b 0
f 0
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
import numpy as np
6
7
8
def position2value(search_space, position):
9
    value = []
10
11
    for n, space_dim in enumerate(search_space):
12
        value.append(space_dim[position[n]])
13
14
    return value
15
16
17
def values2positions(search_space, values):
18
    init_pos_conv_list = []
19
    values_np = np.array(values)
20
21
    for n, space_dim in enumerate(search_space):
22
        pos_1d = values_np[:, n]
23
        init_pos_conv = np.where(space_dim == pos_1d)[0]
24
        init_pos_conv_list.append(init_pos_conv)
25
26
    return init_pos_conv_list
27
28
29
"""
30
def positions2values(search_space, positions):
31
    pos_converted = []
32
    positions_np = np.array(positions)
33
34
    for n, space_dim in enumerate(search_space):
35
        pos_1d = positions_np[:, n]
36
        pos_conv = np.take(space_dim, pos_1d, axis=0)
37
        pos_converted.append(pos_conv)
38
39
    return list(np.array(pos_converted).T)
40
41
"""
42
43