Python 将函数应用于numpy中向量中的每个元素

Python 将函数应用于numpy中向量中的每个元素,python,numpy,Python,Numpy,我正在编写一些性能关键代码 def sig(x): return 1/(1+exp(x)) 我有一个向量 x = [.... say n elements] transform_x = [sig(ele) for ele in x] transform_x = map(lambda ele: sig(ele), x) # bit faster than above loop 但是,有没有更好的方法来应用函数以实现上述效果,但可能是以矢量化的方式,我认为应该更好?您可以将函数应用于整

我正在编写一些性能关键代码

def sig(x):
   return 1/(1+exp(x))
我有一个向量

x = [.... say n elements]

transform_x = [sig(ele) for ele in x]

transform_x = map(lambda ele: sig(ele), x) # bit faster than above loop

但是,有没有更好的方法来应用函数以实现上述效果,但可能是以矢量化的方式,我认为应该更好?

您可以将函数应用于整个阵列,就像在MATLAB中一样:

transformed = sig(x)

正如其他人回答的那样,numpy内置了通用函数的矢量化版本,包括+、/、和exp。您也可以定义自己的矢量化函数,但这些函数的速度通常与for循环相同:。我不确定您在这里使用的exp函数,但是我认为应该使用numpy.exp,然后可以将整个数组传递给函数。