Savoir chercher (trouver) de l’aide

Il n’est pas très utile de connaître toutes les fonctions de numpy et scipy, mais plutôt de savoir rapidement chercher les informations qu’on cherche. Voici quelques moyens de trouver ces informations (qui peuvent être plus rapides que de demander à Google...) :

  • Sous Ipython, help fonction ouvre la page d’aide de la fonction. On peut taper le début de la fonction et se servir de la tab complétion pour faire apparaître les fonctions qui existent.
In [204]: help np.v
np.vander     np.vdot       np.version    np.void0      np.vstack
np.var        np.vectorize  np.void       np.vsplit

In [204]: help np.vander
  • Si on ne connaît pas le nom exact de la fonction, ou si on ne connaît pas les fonction qui existent on peut aussi utiliser la fonction magique %psearch dans Ipython :
In [3]: import numpy as np
In [4]: %psearch np.diag*
np.diag
np.diagflat
np.diagonal
  • On peut chercher des mots clés à l’intérieur des docstrings des différents modules grâce à numpy.lookfor
In [45]: numpy.lookfor('convolution')
Search results for 'convolution'
--------------------------------
numpy.convolve
    Returns the discrete, linear convolution of two one-dimensional
sequences.
numpy.bartlett
    Return the Bartlett window.
numpy.correlate
    Discrete, linear correlation of two 1-dimensional sequences.
In [46]: numpy.lookfor('remove', module='os')
Search results for 'remove'
---------------------------
os.remove
    remove(path)
os.removedirs
    removedirs(path)
os.rmdir
    rmdir(path)
os.unlink
    unlink(path)
os.walk
    Directory tree generator.
  • On peut parcourir la documentation de numpy et scipy sur http://docs.scipy.org/doc/, et utiliser en particulier le bouton search à l’intérieur des pages de référence des deux librairies (http://docs.scipy.org/doc/numpy/reference/ et http://docs.scipy.org/doc/scipy/reference/).

  • Pour savoir comment attaquer un problème, le Cookbook de scipy/numpy donne beaucoup d’exemples de cas d’utilisation courants http://www.scipy.org/Cookbook

  • Malgré l’existence de ces différentes possibilités, il n’en reste pas moins que l’aide est pour le moment un des points faibles de numpy/scipy, comparé à des solutions commerciales comme Matlab ou IDL. Il manque notamment un moteur de recherche où on puisse faire des recherches par mots clés, suivre des liens, etc. Un tel moteur a en fait été implémenté dans l’EPD (dire plus...). Par ailleurs, il y un actuellement un effort important et original dans la communauté de Python scientifique pour justement améliorer la qualité de la documentation. Grâce à un wiki, les utilisateurs peuvent aller modifier les pages d’aide afin de les corriger, les enrichir, ou faire des liens vers d’autres fonctions. Ce travail collaboratif est hébergé sur http://docs.scipy.org/numpy/, n’hésitez pas à aller y faire un tour !

  • Si vous n’avez toujours pas trouvé après avoir fouillé l’aide, fait de nombreuses requêtes google, ... ne vous désepérez pas ! Il existe des mailing-lists (en anglais) très réactives où on obtient rapidement des réponses données par un certain nombre d’experts de Python scientifique :