From dda23110ae93464a58ffb275ad1e0120ee91660a Mon Sep 17 00:00:00 2001 From: Brian Date: Fri, 27 Feb 2026 07:24:22 -0700 Subject: [PATCH] remove partial fix of defining np as an element. replace with more robust fix converting numpy array to scalars with .tolist() so element values appear without the type prefix in circtuit string --- impedance/models/circuits/elements.py | 6 ------ impedance/validation.py | 16 ++++++++++------ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/impedance/models/circuits/elements.py b/impedance/models/circuits/elements.py index 643ff696..b7a8beec 100644 --- a/impedance/models/circuits/elements.py +++ b/impedance/models/circuits/elements.py @@ -45,12 +45,6 @@ def wrapper(p, f): ) else: circuit_elements[func.__name__] = wrapper - # Adding numpy to circuit_elements for proper evaluation with - # numpy>=2.0.0 because the scalar representation was changed. - # "Scalars are now printed as np.float64(3.0) rather than just 3.0." - # https://numpy.org/doc/2.0/release/2.0.0-notes.html - # #representation-of-numpy-scalars-changed - circuit_elements["np"] = np return wrapper diff --git a/impedance/validation.py b/impedance/validation.py index 290d4a27..55666c8e 100644 --- a/impedance/validation.py +++ b/impedance/validation.py @@ -265,14 +265,18 @@ def fit_linKK(f, ts, M, Z, fit_type='real', add_cap=False): def eval_linKK(elements, ts, f): """Builds a circuit of RC elements to be used in LinKK""" - circuit_string = f"s([R({[elements[0]]},{f.tolist()})," + elements_list = elements.tolist() + ts_list = ts.tolist() + f_list = f.tolist() - for Rk, tk in zip(elements[1:], ts): - circuit_string += f"K({[Rk, tk]},{f.tolist()})," + circuit_string = f"s([R({[elements_list[0]]},{f_list})," - circuit_string += f"L({[elements[-1]]},{f.tolist()})," - if elements.size == (ts.size + 3): - circuit_string += f"C({[1 / elements[-2]]},{f.tolist()})," + for Rk, tk in zip(elements_list[1:], ts_list): + circuit_string += f"K({[Rk, tk]},{f_list})," + + circuit_string += f"L({[elements_list[-1]]},{f_list})," + if len(elements_list) == (len(ts_list) + 3): + circuit_string += f"C({[1 / elements_list[-2]]},{f_list})," circuit_string = circuit_string.strip(',') circuit_string += '])'