1.6. ヘルプを見る、ドキュメントを探す

著者: Emmanuelle Gouillart

Numpy と Scipy に含まれる全ての関数について知っているよりも、ドキュメントや利用できるヘルプからすぐに欲しい情報を見つけられるほうが重要です。ここではいくつかの情報入手方法を扱います。

  • Ipython では help function で関数の doctsring が開きます。関数の名前の最初の部分をタイプしてタブ補完を利用することでマッチする関数を表示できます。

    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

Ipython ではヘルプとドキュメント用に別のウィンドウを開くことができませんが、いつでも別の Ipython シェルを起動してヘルプやドキュメントを表示できます。

../../_images/scipy_doc.png
  • Numpy と Scipy のドキュメントはオンラインで http://docs.scipy.org/doc で見ることができます. パッケージのリファレンスドキュメント (http://docs.scipy.org/doc/numpy/reference/http://docs.scipy.org/doc/scipy/reference/) 内の search ボタンは非常に有用です。

    この web サイトで様々な話題のチュートリアルや docstrings を含む API 一式を見ることができます。

    ../../_images/docwiki.png
  • Numpy と Scipy のドキュメントはユーザによる Wiki http://docs.scipy.org/doc/numpy/ をもとにして補強, 更新されています。なので、より明解で詳細なドキュメンテーション文字列を wiki で見つけられるかもしれません、そして公式のドキュメントの Web サイトの代わりに Wiki のドキュメントを直接見たいと思うかもしれません. Wiki のアカウントは誰でも作れるので, 誰でもよりよいドキュメントを書くことができます. ドキュメントの改善はオープンソースプロジェクトに協力して, 自分で使っているツールを改善する最も簡単な方法です!

  • Scipy central http://central.scipy.org/ には共通してよく遭遇する問題、データのフィッティング、ODE を解く等のレシピがおかれています。

    ../../_images/matplotlib.png
  • Matplotlib の web サイト http://matplotlib.org/ にはたくさんの作図例があり、その一つ一つがソースコードとその結果を示していて、とても素晴しい ギャラリー が取り上げられています。ここは例から学ぶのにとても便利です。より標準的なドキュメントも入手可能です。

最後に、2つのより “技術的” な候補も同様に便利です。

  • Ipython では magical function %psearch でパターンにマッチするオブジェクトを検索します。これは、例えば関数の厳密な名前を知らない場合に便利です。

    In [3]: import numpy as np
    
    In [4]: %psearch np.diag*
    np.diag
    np.diagflat
    np.diagonal
  • numpy.lookfor は指定したモジュールの docstrings 内部のキーワードを探します。

    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.
  • 上に挙げた全ての方法を試しても(さらに Google で答えがなかった場合)、情報が得られなかった場合もあきらめないで! 問題にあったメーリングリストにメールを書いてみましょう: 問題を適切な形で書けばすぐ解答を得ることができるでしょう. メーリングリストでは Scientific python のエキスパート達がしばしば教育的な説明してくれています。