1.6 获取帮助及寻找文档

与了解Numpy和Scipyzhong的所有函数相比,通过文档和可用帮助快捷的找到信息更重要。这里是获得信息的一些方式:

  • 在Ipython中,help 方法打开函数的文档字符串。只需要输入函数名的起始字母,使用tab完成来显示匹配到的函数。
  1. In [204]: help np.v
  2. np.vander np.vdot np.version np.void0 np.vstack
  3. np.var np.vectorize np.void np.vsplit
  4. In [204]: help np.vander

在Ipython中无法为帮助和问答打开一个独立的窗口;但是,可以打开另一个Ipython shell仅显示帮助和文档字符串…

在这个网站上也可以找到不同主题的教程以及所有字符串文档的完整API。 1.6 获取帮助及寻找文档 - 图1

  • Numpy和Scipy的文档由用户在wiki http://docs.scipy.org/numpy/ (链接已经失效) 上定期丰富和更新。因此,一些字符串文档在wiki上更清晰想尽,你可能更想在wiki上读取文档而不是在官方文档网站上。注意任何人都可以在wiki上创建一个帐号来写更好的文档;这是为开源项目做贡献以及改善你所使用的工具的简单方式!

1.6 获取帮助及寻找文档 - 图2

  • Scipy的cookbook http://www.scipy.org/Cookbook 给出了许多常见问题的做法,比如拟合数据点,求解ODE等。

  • Matplotlib网站 http://matplotlib.sourceforge.net/ 以一个拥有大量图表的非常漂亮的画廊为特色,每个图表都显示了源代码及生成的图表。这对于通过例子来学习非常有帮助。在网站上也可以找到更多的标准文档。

1.6 获取帮助及寻找文档 - 图3

最后,两个更加“技术”可能性也非常有用:

  • 在Ipython中,魔法函数%psearch搜索匹配模式的对象。例如,如果不知道函数的准确名称,这将非常有用。
  1. In [3]: import numpy as np
  2. In [4]: %psearch np.diag*
  3. np.diag
  4. np.diagflat
  5. np.diagonal
  • numpy.lookfor 查找指定模块文档字符串中的关键字。
  1. In [45]: numpy.lookfor('convolution')
  2. Search results for 'convolution'
  3.  ------------- -------------------
  4. numpy.convolve
  5. Returns the discrete, linear convolution of two one-dimensional
  6. sequences.
  7. numpy.bartlett
  8. Return the Bartlett window.
  9. numpy.correlate
  10. Discrete, linear correlation of two 1-dimensional sequences.
  11. In [46]: numpy.lookfor('remove', module='os')
  12. Search results for 'remove'
  13.  ------------- --------------
  14. os.remove
  15. remove(path)
  16. os.removedirs
  17. removedirs(path)
  18. os.rmdir
  19. rmdir(path)
  20. os.unlink
  21. unlink(path)
  22. os.walk
  23. Directory tree generator.
  • 如果上面列出的所有方法都失败了(并且Google也没有答案)… 不要绝望!你的问题适合向邮件组写一封邮件:如果你很好的描述了你的问题,那么你应该会很快得到答案。Python科学计算的专家通过在邮件组给出非常有启发性的解释。
    • Numpy讨论([email protected]): 全部是关于Numpy数组,操作数据,索引等问题。
    • SciPy用户列表([email protected]): 用Python进行科学计算,高级数据处理,特别是scipy包的使用。
    • [email protected] 用matplotlib绘图。

In [1]:

  1. %matplotlib inline