To Andrew Nelson:

> In the return section for fsolve the documentation states that the return
> value, `x`, is an `ndarray`.

True, my bad. There is another issue with `fsolve`: it implicitly changes
the argument  passed to `func`. Consider

def func(x):
    # x = float(x)
    if not np.isscalar(x) and x.shape != ():
        raise ValueError('The argument must be a number or a 0-d array')
    return x - 1

fsolve(func, np.array(2.0))

---------------------------------------------------------------------------ValueError
                               Traceback (most recent call
last)/tmp/ipykernel_1017360/2091764495.py in <module>      5
return x - 1      6 ----> 7 fsolve(func, np.array(2.0))
. . .
 ValueError: The argument must be a number or a 0-d array

I had the commented out line in my code (in real life I am calling a
library function that accepts only
numeric types, not arrays). Changing this to line to x = x.item() makes sense.
The documentation states that `func` takes at least one (possibly
vector) argument. It must take a vector.
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to