[Numpy-discussion] Array of Callables
Tue Mar 20 12:10:43 CDT 2007
Shane Holloway wrote:
> To the vector-processing masters of numpy!
> I'm wanting to optimize calling a list (or array) of callable
> objects. Consider the following:
> vCallables = numpy.array([<python callables: fns, methods, lambdas,
> classes, builtin functions>])
> vParam1 = numpy.array([<parameters for vCallables>])
> vParam2 = numpy.array([<parameters for vCallables>])
> vParam3 = numpy.array([<parameters for vCallables>])
> vResults = numpy.array([None for e in vCallables])
> Is it possible to have numpy call them in a way something like::
> for i in xrange(vCallables.shape):
> vResults[i] = vCallables[i] ( vParam1[i], vParam2[i], vParam3[i] )
> With the core of that loop implemented in C?
There's nothing sitting around, no. It's easy enough to write with Pyrex (and
easier without bothering with numpy); however, unless if all of your functions
are builtin, you won't see much, if any, speed gains. Python's function call
overhead will dominate the savings of a C for loop over a Python for loop.
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Numpy-discussion