【发布时间】:2012-02-28 13:55:14
【问题描述】:
根据“只有一种明显的方法可以做到”,如何在 Numpy 中获得向量(一维数组)的大小?
def mag(x):
return math.sqrt(sum(i**2 for i in x))
上述方法可行,但我无法相信我必须自己指定这样一个微不足道的核心功能。
【问题讨论】:
-
我通常使用
linalg.norm,如下所述。但比你的 lambda 东西稍微简单一点,不需要导入,只是sum(x*x)**0.5 -
顺便说一句,将 lambda 函数分配给名称从来没有任何充分的理由。
-
lambda 旨在成为一个匿名函数,所以给它一个名字你做错了。那么它只是def的残缺版本。而且,如果你坚持,你也可以在一行上放一个 def。您可能有理由使用 lambda 的通常地方是用于将某些参数列表作为可调用对象传递。人们误用它,如上所示,这是它进入 guido 的python regrets 列表的原因之一(见幻灯片 4)
-
链接已失效! Long live the link!
-
链接是PowerPoint! Long live the PDF!