Issue: SymPy numbers and NumPy interoperability · Issue #25432 · sympy/sympy (github.com) <https://github.com/sympy/sympy/issues/25432> So it seems like there is no nice solution for this currently, and changes are needed in NumPy.
On Wednesday, 26 July 2023 at 20:50:45 UTC+3 [email protected] wrote: > In general, using SymPy expressions with NumPy functions is not > supported, but I think it does make sense to make Number classes > (Integer, Float, Rational) work. Can you open an issue about this at > https://github.com/sympy/sympy/issues. > > I don't know exactly what needs to be done to make this work. > Hopefully NumPy provides the proper hooks. Ideally, Rational and Float > would be converted to np.float64 and Integer would be converted to > np.int64 when used in functions like linspace. Although changing this > could potentially be an issue if people are using numpy arrays of > Rational currently (which I wouldn't necessarily recommend). > > Aaron Meurer > > On Wed, Jul 26, 2023 at 11:37 AM Idan Pazi <[email protected]> wrote: > > > > Hello, > > Is there a way I could configure NumPy or SymPy so that NumPy functions > would accept SymPy numbers (e.g. sympy.Rational)? > > > > For example: > > >>> import numpy as np > > >>> import sympy > > >>> np.linspace(0, sympy.Rational(1,2), 2) > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > File "<__array_function__ internals>", line 180, in linspace > > File > "C:\Users\idank\mambaforge\lib\site-packages\numpy\core\function_base.py", > line 130, in linspace > > dt = result_type(start, stop, float(num)) > > File "<__array_function__ internals>", line 180, in result_type > > TypeError: Cannot interpret '0.500000000000000' as a data type > > > > >>> np.isnan(sympy.Rational(1,2)) > > Traceback (most recent call last): > > File "<stdin>", line 1, in <module> > > TypeError: ufunc 'isnan' not supported for the input types, and the > inputs could not be safely coerced to any supported types according to the > casting rule ''safe'' > > > > Background: > > I'm using IPython+SymPy+NumPy as a calculator. > > For convenience, I automatically convert all divisions and floats to > sympy.Rational > > (and display results both as fractions and as decimals) > > After such conversions stuff like np.log(2.33) fails. > > For more details, see - https://github.com/idanpa/calcpy > > > > (SymPy version 1.12, NumPy version 1.25.1) > > > > Thanks! > > Idan > > > > -- > > You received this message because you are subscribed to the Google > Groups "sympy" group. > > To unsubscribe from this group and stop receiving emails from it, send > an email to [email protected]. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/208b8d87-9e7b-4fe9-86fc-9575a0b57002n%40googlegroups.com > . > -- You received this message because you are subscribed to the Google Groups "sympy" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/sympy/c5abf9ae-7c65-4935-9685-3791da6fa20an%40googlegroups.com.
