Re: Vectorization and Numeric (Newbie)



Ronny Mandal wrote:
Assume you have a mathematical function, e.g. f(x) = x + 4

To calculate all the values from 1 to n, a loop is one alternative.


Numeric and friends (numarray,numpy) have something like numarray.arange - they return arrays similar to the lists returned by standard libs range function. I would recommend using the built-in array operations as much as possible - in most cases they are much faster than looping, and your code remains simpler.

But to make this function work with vectors instead i.e
f(x_vector) = result_vector,
how should the function then be implemented?


In most numeric libraries, vectors and scalars can be added etc.
For the simple f(x) case you can use just the simplest approach:

def f(x):
return x+4

and call this with scalar and vector args.
f_pi = f(3.14159265)
f_1to200 = f(numarray.arange(1,200))
.