Numpy矢量化排除参数

Numpy矢量化排除参数,numpy,vectorization,Numpy,Vectorization,我需要有人用一种简单的方式解释Numpy矢量化函数中排除参数的功能。有时您不希望所有对象都被迭代。两个例子: 在你的函数中,f(a,b)代表单个元素,比如np.mod(a,b)。在这里矢量化没有问题: 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 element

我需要有人用一种简单的方式解释Numpy矢量化函数中排除参数的功能。

有时您不希望所有对象都被迭代。两个例子:

在你的函数中,f(a,b)代表单个元素,比如np.mod(a,b)。在这里矢量化没有问题:

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
另一方面,您有一个函数g(a,b),它需要b的数组(例如:查找表或多项式的参数)。因此,b必须保留数组,否则函数将给出错误或错误数据。这是通过排除b来实现的。请注意,通过使用exclude,现在必须命名所有参数。例如:

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

欢迎来到堆栈溢出!请仔细阅读,特别是。你在这里的最佳选择是做你的研究,搜索相关的话题,然后尝试一下。在做了更多的研究和搜索之后,发布一篇你的尝试的文章,并明确指出你的困境,这可以帮助你得到更好的答案。听起来你是一个
numpy
初学者。我认为你不应该花太多时间学习
np.vectorize
。我已经回答了一些有关此
排除的
参数的问题,但在解释它时,如果不清楚您知道多少,或者您需要什么,可能不值得我们花时间。我了解一些函数。我只是不明白“传递给排除关键字的值将不会矢量化”是什么意思。请解释一下。谢谢你之前的回复