'Numpy vectorize excluded argument
Please I need someone to explain the function of excluded argument in Numpy vectorize function in a simple way.
Solution 1:[1]
Sometimes you don't want all of your objects to be iterated. Two examples:
in your function f(a,b)
is for single elements like np.mod(a,b)
. No problem vectorizing here:
import numpy as np
vc = np.vectorize(np.mod)
print(vc([5,11,7,4],2)) # first element will be iterated
print(vc([5,11,7,4],[2,3,4,5])) # both elements will be iterated
print(vc(5,[2,3,4,5])) # only second element will be iterated
on the other hand you have a function g(x,p)
which requires an array for p
(example: a lookup table or parameters for a polynom). Therefore p
has to stay an array, otherwhise the function would give an error or false data. This is done by excluding p
. Please note that by using exclude, all your parameters now have to be named. Example:
import numpy as np
def g(x,p):
return p[0]+x*p[1]+x*x*p[2]
print(g(5,[0,0,1]))
vg = np.vectorize(g, excluded=['p'])
print(vg(x=[0,1,2,3,4,5],p=[0,0,1])) # p will not be iterated
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 |