Ondřej, I did send you my complete 900 lines scripts to show the problem
and did not think of making a very simple demo; here it is:
import sympy
import numpy
n = 2
formula = 'x_0 + x_1'
x = sympy.symbols('x_0:%d' % n, real=True, bounded=True)
y = sympy.sympify(formula)
fx = f_x = sympy.lambdify([x], y, modules='numpy')
X = numpy.ones(n)
print('function value=', fx(X))
Python 2.7 returns:
('function value=', 2.0)
which is obviously the correct answer.
Python 3.3 returns:
print('function value=', fx(X))
TypeError: <lambda>() missing 1 required positional argument: 'x_1'
Hope this helps to clearify the point.
Cheers, Janwillem
On Tuesday, 7 January 2014 11:04:30 UTC+1, Janwillem van Dijk wrote:
>
> I have a SymPy script with a.o.
>
> f_mean = lambdify([mu, sigma], mean, modules='numpy')
>
>
> where mean is a function of mu and sigma and mu and sigma are both arrays
>
> mu = symbols('mu_0:%d' % n, real=True, bounded=True)
>
> sigma = symbols('sigma_0:%d' % n, positive=True, real=True, bounded=True)
>
>
> Under Python 2.7.5+ SymPy 0.12.0 I can use:
>
> y = f_mean(x_n, ux_n)
>
> returning y as a numpy array of size n when x_n and ux_n are both numpy
> arrays of size n.
>
> However, with Python 3.3.2+ and SymPy 0.7.4.1-git I get (for n=5):
>
> y = f_mean(x_n, ux_n)
> TypeError: <lambda>() missing 10 required positional arguments: 'mu_2',
> 'mu_3', 'mu_4', 'mu_5', 'sigma_0', 'sigma_1', 'sigma_2', 'sigma_3',
> 'sigma_4', and 'sigma_5'
>
>
> Which is similar to what I got in Python 2.7 before I added the
> modules=numpy argument
>
> All this on ubuntu 13.10
>
>
> Have I missed something in the docs or did I stumble on a not yet
> implemented feature?
>
> Any help very welcome.heers,
>
> Cheers, Janwillem
>
>
--
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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sympy.
For more options, visit https://groups.google.com/groups/opt_out.