Numpy矢量化排除参数

5
请问您需要解释Numpy中vectorize函数的excluded参数吗?简单来说,excluded参数用于指定哪些输入参数不应传递给向量化函数。这可以帮助您在处理多个数组时只使用特定的输入参数。

1
欢迎来到 Stack Overflow!请参观 tour 并阅读 help center,特别是 how to ask。在这里,最好的方法是进行研究,在 SO 上搜索相关主题并尝试解决问题。在进行更多研究和搜索后,请发布一个 Minimal, Complete, and Verifiable example 来说明您的尝试,并明确指出您遇到了什么问题,这可以帮助您获得更好的答案。 - help-info.de
听起来你是一个numpy的初学者。我认为你不应该花太多时间学习np.vectorize。我回答了一些涉及到这个excluded参数的问题,但如果没有清晰的了解你的知识水平或需求,解释它可能不值得我们的时间。 - hpaulj
我了解一些函数,只是不明白“传递给排除关键字的值将不会被矢量化”的意思。请再解释一下,谢谢之前的回答。 - Ogochukwu Stanley Ikegbo
1个回答

8
有时候你不想迭代所有的对象。以下是两个例子:
在你的函数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

另一方面,您有一个需要数组 p 的函数 g(x,p)(例如:查找表或多项式参数)。因此,p 必须保持为数组,否则该函数将产生错误或错误数据。这是通过排除 p 实现的。请注意,使用 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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接