有和没有笔记本差异的IPython

时间:2015-01-11 15:37:44

标签: python numpy matplotlib ipython ipython-notebook

我最喜欢的Python最重要的即兴创作之一是IPython和IPython Notebook。

我正在观看并重复此video中显示的内容,并发现了一些问题。

如视频中所述,我使用ipython --pylab启动IPython。 我使用ipython notebook --pylab启动IPython Notebook。

问题:scatter()在IPython NoteBook中不起作用(我得到NameError)但在IPython中工作正常。 函数rand()的情况也是如此。我猜pylabmatplotlibscipynumpyrandom和其他基本库一起加载。

如果我错了,请告诉我。顺便说一下,我的 Anaconda Dist。加载了我的IPython和IPython NoteBook,如果这意味着什么。

当我使用--pylab时,我可以知道所有加载内容的任何资源都会有所帮助。

感谢。

2 个答案:

答案 0 :(得分:2)

这是pylab标志的作用:

import numpy
import matplotlib
from matplotlib import pylab, mlab, pyplot
np = numpy
plt = pyplot

from IPython.core.pylabtools import figsize, getfigs

from pylab import *
from numpy import *

也就是说,建议您在没有标志的情况下启动笔记本(只需ipython notebook),然后运行:

%matplotlib inline

有关详细信息,请参阅No Pylab Thanks

关于分散问题,您应该尝试以下方法:

%matplotlib inline
import matplotlib.pyplot as plt

plt.scatter([1,2], [1,2])

答案 1 :(得分:0)

以下是您不应使用%pylab inline

的另一个示例

%pylab inline之前:bool(all(i for i in range(3))) => False

%pylab inline之后:bool(all(i for i in range(3))) => True

%pylab inline语句导入numpy.all,它具有不同的行为。请参阅help(all)之前和之后的%pylab inline查看。另外,请先尝试print(', '.join(sorted(globals().keys())))。之后看到了大量进口的东西。

正如其他人所提到的,%matplotlib inline避免了这种情况以及随之而来的微妙/难以发现的问题。