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[0]): > 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. -- Robert Kern "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 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://projects.scipy.org/mailman/listinfo/numpy-discussion