我有一个以标量为参数的函数。我想映射一个numpy数组作为此函数的参数。
def myfn(scalar):
return transformed_scalar
我知道np.vectorize,我已经用它来对它进行矢量化
vmyfunc = np.vectorize(myfn)
mapped_array = vmyfunc([x1,x2,...,xn])
阅读文档我意识到它只是一个for循环,请参阅下面的引用:
注释
提供vectorize函数主要是为了方便,而不是为了方便 性能。实现基本上是for循环
我正在寻找另一种改进的方法,以实现该函数的矢量化,从而提高此方法的性能。 也许是使用熊猫的东西?
更新
采用标量的函数如下所示:
def Loss_func(x, y, W):
delta = 1.0
scores = W.dot(np.transpose(x))
margins = np.maximum(0, scores - scores[y] + delta)
margins[y] = 0
loss_i = np.sum(margins)
return loss_i
其中是标量,X和W 2-D np数组。