Numpy fournit à la fois np.absolute
et l'alias np.abs
défini via
_from .numeric import absolute as abs
_
qui semble être en violation évidente de le zen de python :
Il devrait y avoir une - et de préférence une seule - manière évidente de le faire.
Donc, je suppose qu'il y a une bonne raison à cela.
J'ai personnellement utilisé _np.abs
_ dans la quasi-totalité de mon code et j'ai consulté, par exemple, le nombre de résultats de recherche pour np.abs vs np.absolute sur Stack Overflow, il semble qu'une majorité écrasante fasse de même (2130 vs 244 hits).
Existe-t-il une raison quelconque pour laquelle je devrais utiliser préférentiellement _np.absolute
_ par rapport à _np.abs
_ dans mon code, ou devrais-je simplement opter pour le plus "standard" _np.abs
_?
C'est probablement parce qu'il y a des fonctions intégrées portant le même nom, abs
. Il en va de même pour np.amax
, np.amin
et np.round_
.
Les alias des fonctions NumPy abs
, min
, max
ET round
ne sont définis que dans le package de niveau supérieur.
Donc, np.abs
et np.absolute
sont complètement identiques. Peu importe lequel vous utilisez.
Les noms abrégés présentent plusieurs avantages: Ils sont plus courts et sont connus des programmeurs Python car ils sont identiques aux fonctions intégrées Python. Ainsi, les utilisateurs finaux ont plus de facilité (moins de dactylographie, moins de mémorisation).
Mais il y a aussi des raisons d'avoir des noms différents: NumPy (ou plus généralement, les paquetages tiers) ont parfois besoin du Python fonctions abs
, min
, etc. Ils définissent donc des fonctions avec un nom différent pour continuez d’accéder aux fonctions Python - et vous exposez les "raccourcis" au plus haut niveau du paquet. Remarque: Différents noms ne sont pas la seule option disponible dans ce cas: on pourrait contourner ce problème avec le module Python builtins
pour accéder à les fonctions intégrées si on ombré un nom intégré.
Cela pourrait également être le cas (mais ce n’est que pure spéculation de ma part) qu’ils n’incluaient à l’origine les fonctions nommées depuis longtemps absolute
(et ainsi de suite) et n’ajoutaient que les alias abrégés plus tard. Étant une bibliothèque volumineuse et bien utilisée, les développeurs de NumPy ne suppriment ni ne déconseillent les choses à la légère. Ainsi, ils peuvent simplement garder les noms longs car cela pourrait casser l'ancien code/les scripts s'ils les supprimaient.