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 643ff69..b7a8bee 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 290d4a2..55666c8 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 += '])'