我应该使用np.abs还是np.abs?

2024-04-24 13:27:59 发布

您现在位置:Python中文网/ 问答频道 /正文

Numpy提供了通过

from .numeric import absolute as abs

似乎明显违反了the zen of python

There should be one-- and preferably only one --obvious way to do it.

所以我想这是有原因的。

我个人在几乎所有的代码中都使用了np.abs,例如,查看堆栈溢出时np.absnp.absolute的搜索结果数量,似乎绝大多数都是这样做的(2130次与244次点击)。

在我的代码中,我应该优先使用np.absolute而不是np.abs,还是应该只使用更“标准”的np.abs


Tags: ofthe代码fromimportnumpyasnp
1条回答
网友
1楼 · 发布于 2024-04-24 13:27:59

很可能是因为有一个同名的内置函数,^{}。这同样适用于np.amaxnp.aminnp.round_

NumPy函数^{}, ^{}, ^{} and ^{}的别名仅在顶级包中定义。

所以np.absnp.absolute是完全相同的。你用哪一个无关紧要。

短名称有几个优点:它们较短,Python程序员知道它们,因为它们的名称与内置的Python函数相同。所以最终用户更容易(少打字,少记忆)。

但是也有理由使用不同的名称:NumPy(或者通常是第三方包)有时需要Python函数absmin,等等。因此在包中,它们用不同的名称定义函数,这样您仍然可以访问Python函数——而在包的顶层,您可以公开“快捷方式”。注意:在这种情况下,不同的名称并不是唯一可用的选项:可以使用Python模块^{}来解决这个问题,以便在隐藏了内置名称的情况下访问内置函数。

也可能是这样的(但这纯粹是我的猜测),它们最初只包括长名称的函数absolute(等等),后来只添加了短别名。作为一个大型且使用良好的库,NumPy开发人员不会轻易地删除或弃用东西。因此,他们可能只保留长名称,因为如果删除它们,它可能会破坏旧代码/脚本。

相关问题 更多 >