gpt4 book ai didi

python - 我应该使用 np.absolute 还是 np.abs?

转载 作者:IT老高 更新时间:2023-10-28 20:35:42 26 4
gpt4 key购买 nike

Numpy 提供了 np.absolute和别名 np.abs通过定义

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.abs 的搜索结果数对比 np.absolute在 Stack Overflow 上,似乎绝大多数人都这样做(2130 对 244 次点击)。

有什么理由我应该在我的代码中优先使用 np.absolute 而不是 np.abs,或者我应该简单地选择更“标准”的 np.abs?

最佳答案

这可能是因为有一个同名的内置函数,abs . np.amaxnp.aminnp.round_ 也是如此。

NumPy 函数的别名 abs, min, max and round仅在顶级包中定义。

所以 np.absnp.absolute 是完全一样的。使用哪一个都没关系。

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

但是也有不同的名称的原因:NumPy(或更一般的 3rd 方包)有时需要 Python 函数 absmin 等。所以在里面package 他们用不同的名字定义了函数,所以你仍然可以访问 Python 函数——并且只是在包的顶层你暴露了“快捷方式”。注意:在这种情况下,不同的名称不是唯一可用的选项:可以使用 Python 模块 builtins 解决这个问题。如果隐藏了内置名称,则可以访问内置函数。

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

关于python - 我应该使用 np.absolute 还是 np.abs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45413909/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com