To add to the * solution discussion:
In the past I had hidden the * by defining something like

_f_x = sympy.lambdify([x, a], y)

def f_x(x, a):

    return _f_x(*numpy.hstack([x, a]))


This works on Python3.3 but now I get on Python2.7:

Traceback (most recent call last):

  File "sympy-numpy_2.py", line 39, in <module>

    print('function value=', f_x(X, a))

  File "sympy-numpy_2.py", line 36, in f_x

    return _f_x(*numpy.hstack([x, a]))

TypeError: <lambda>() takes exactly 2 arguments (4 given)

Whereas I seem to remember that this used to work with 2.7

By the way, my environment
linux:   Linux-3.11.0-12-generic-x86_64-with-Ubuntu-13.10-saucy
python:  3.3.2+ (default, Oct  9 2013, 14:50:09) [GCC 4.8.1]
sympy:   0.7.4.1-git
numpy:   1.7.1
or
python:  2.7.5+ (default, Sep 19 2013, 13:48:49) [GCC 4.8.1]

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.

Reply via email to