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,然后可以将整个数组传递给函数。