Lambda函数——一个有趣的问题



我有一个关于python中lambda函数的有趣问题。我很想听听你精彩的解释。

short_list = np.array([1,2,3,4,5])
func_1 = lamda x: x*2 
func_2 = lamda x: x - x.mean()

当我们在short_list上使用func_1时,我们几乎将每个元素乘以2。

当在short_list上应用func_2时,我们用short_list的平均值减去每个元素。

我的问题是:既然lambda函数中的x代表列表中的每个元素,那么python怎么能把x.mean((理解为short_list的平均值呢?

欢迎任何解释,非常感谢您的帮助!

这是因为您使用的是np.array,因此x是一个向量。

func_1=x*2与short_list*2相同。如果你给它传递一个np.array,这个数组就会乘以2。(这不是按元素应用的——它一次应用于整个矢量(

func_2与short_list-标量short_list.mean((相同。这将导致每个元素都有一个np.array-标量short-list.mean

底线是每个操作都直接在np.array上,而不是在其元素上。没有循环。

相关内容

  • 没有找到相关文章

最新更新