Skip to content

Commit 61f0184

Browse files
committed
allow strings as factor levels
1 parent cc38645 commit 61f0184

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

doepy/doe_functions.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ def construct_df(x, r):
2222
"""
2323
Function for constructing a DataFrame from a numpy array generated by PyDOE function and individual lists
2424
"""
25-
result = np.zeros(x.shape)
25+
result = []
2626
for i, row in enumerate(x):
27-
result[i, :] = [rcolumn[int(idx)] for rcolumn, idx in zip(r, row)]
27+
result.append([rcolumn[int(idx)] for rcolumn, idx in zip(r, row)])
2828
return pd.DataFrame(result)
2929

3030

doepy/tests/test_build.py

+12
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,18 @@ def test_full_fact():
1010
for factor, values in factors.items():
1111
assert set(df[factor]) == set(values)
1212

13+
# factorlevels can also be strings
14+
factors = {
15+
'lr': [5e-4, 2e-4, 1e-3],
16+
'iterations': [20000, 40000],
17+
'n_pairs': [20, 40, 80],
18+
'level': ["LOW", "HIGH"]
19+
}
20+
df = full_fact(factors)
21+
assert len(df) == 3 * 2 * 3 * 2
22+
for factor, values in factors.items():
23+
assert set(df[factor]) == set(values)
24+
1325

1426
def test_frac_fact_res():
1527
factors = {'A': [1, 5], 'B': [0.3, 0.7], 'C': [10, 15], 'D': [3, 7], 'E': [-2, -1]}

0 commit comments

Comments
 (0)