1.6. 获取帮助和查找文档

作者: Emmanuelle Gouillart

与其了解 NumPy 和 SciPy 中的所有函数,不如快速找到有关文档和可用帮助的信息。以下是一些获取信息的方法

  • 在 Ipython 中,help function 会打开函数的文档字符串。只需输入函数名称的开头并使用制表符补全即可显示匹配的函数。

    In [1]: help(np.van<TAB>
    
    In [2]: help(np.vander)
    Help on _ArrayFunctionDispatcher in module numpy:
    vander(x, N=None, increasing=False)
    Generate a Vandermonde matrix.
    The columns of the output matrix are powers of the input vector. The
    order of the powers is determined by the `increasing` boolean argument.
    Specifically, when `increasing` is False, the `i`-th output column is
    the input vector raised element-wise to the power of ``N - i - 1``. Such
    a matrix with a geometric progression in each row is named for Alexandre-
    Theophile Vandermonde.
    Parameters
    ----------
    x : array_like
    1-D input array.
    N : int, optional
    Number of columns in the output. If `N` is not specified, a square
    array is returned (``N = len(x)``).
    increasing : bool, optional
    Order of the powers of the columns. If True, the powers increase
    from left to right, if False (the default) they are reversed.
    .. versionadded:: 1.9.0
    Returns
    -------
    out : ndarray
    Vandermonde matrix. If `increasing` is False, the first column is
    ``x^(N-1)``, the second ``x^(N-2)`` and so forth. If `increasing` is
    True, the columns are ``x^0, x^1, ..., x^(N-1)``.
    See Also
    --------
    polynomial.polynomial.polyvander
    Examples
    --------
    >>> import numpy as np
    >>> x = np.array([1, 2, 3, 5])
    >>> N = 3
    >>> np.vander(x, N)
    array([[ 1, 1, 1],
    [ 4, 2, 1],
    [ 9, 3, 1],
    [25, 5, 1]])
    >>> np.column_stack([x**(N-1-i) for i in range(N)])
    array([[ 1, 1, 1],
    [ 4, 2, 1],
    [ 9, 3, 1],
    [25, 5, 1]])
    >>> x = np.array([1, 2, 3, 5])
    >>> np.vander(x)
    array([[ 1, 1, 1, 1],
    [ 8, 4, 2, 1],
    [ 27, 9, 3, 1],
    [125, 25, 5, 1]])
    >>> np.vander(x, increasing=True)
    array([[ 1, 1, 1, 1],
    [ 1, 2, 4, 8],
    [ 1, 3, 9, 27],
    [ 1, 5, 25, 125]])
    The determinant of a square Vandermonde matrix is the product
    of the differences between the values of the input vector:
    >>> np.linalg.det(np.vander(x))
    48.000000000000043 # may vary
    >>> (5-3)*(5-2)*(5-1)*(3-2)*(3-1)*(2-1)
    48

在 Ipython 中无法为帮助和文档打开一个单独的窗口;但是,始终可以打开第二个 Ipython shell 仅用于显示帮助和文档字符串……

  • NumPy 和 SciPy 的文档可以在 https://scipy.org.cnhttps://numpy.com.cn 上在线浏览。这两个包的参考文档中,search 按钮非常有用。

    本网站提供了有关各种主题的教程,以及包含所有文档字符串的完整 API。

  • NumPy 和 SciPy 的文档由用户在维基页面 https://numpy.com.cn/doc/stable/ 上定期丰富和更新。因此,某些文档字符串在维基页面上更清晰或更详细,您可能希望直接阅读维基页面上的文档,而不是官方文档网站。请注意,任何人都可以在维基页面上创建帐户并编写更好的文档;这是一种简单的方法,可以为开源项目做出贡献并改进您正在使用的工具!

  • SciPy Cookbook https://cookbook.scipy.org.cn 提供了许多常见问题的解决方案,例如拟合数据点、求解 ODE 等。

  • Matplotlib 网站 https://matplotlib.net.cn/ 拥有一个非常棒的画廊,其中包含大量图表,每个图表都同时显示源代码和生成的图表。这对于通过示例学习非常有用。还提供更标准的文档。

  • 在 Ipython 中,神奇函数 %psearch 搜索与模式匹配的对象。例如,如果不知道函数的确切名称,这将非常有用。

    In [3]: import numpy as np
    
  • 如果上述所有方法都失败(并且 Google 也无法找到答案)… 不要绝望!有一个充满活力的科学 Python 社区。科学 Python 存在于各种平台上。 https://scientific-python.cn/community/

    像 SciPy 和 NumPy 这样的包也有自己的频道。请查看其各自的网站,了解如何与用户和维护者互动。