IPython 有无笔记本差异
IPython with and Without Notebook Differences
我最喜欢的 Python 最重要的即兴创作之一是 IPython 和 IPython Notebook。
我正在观看并重复此 video 中显示的内容并发现了一些问题。
如视频中所述,我使用 ipython --pylab
启动 IPython。
我使用 ipython notebook --pylab
启动 IPython Notebook。
问题:scatter()
在 IPython NoteBook 中无法工作(我得到一个 NameError
)但在 IPython 中工作正常。
函数 rand()
也是如此。我猜 pylab
与 matplotlib
、scipy
、numpy
、random
和其他基本库一起加载。
如果我错了请告诉我。顺便说一下,我的 IPython 和 IPython NoteBook 都从我的 Anaconda Dist. 加载,如果这意味着什么的话。
此外,当我使用 --pylab
时我可以知道所有加载内容的任何资源都会有所帮助。
谢谢。
这就是 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])
这是您不应该使用 %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
,它具有不同的行为。看%pylab inline
前后help(all)
。此外,尝试 print(', '.join(sorted(globals().keys())))
之前和之后查看导入的大量内容。
正如其他人所提到的,%matplotlib inline
避免了这个问题以及它导致的后续微妙/难以发现的问题。
我最喜欢的 Python 最重要的即兴创作之一是 IPython 和 IPython Notebook。
我正在观看并重复此 video 中显示的内容并发现了一些问题。
如视频中所述,我使用 ipython --pylab
启动 IPython。
我使用 ipython notebook --pylab
启动 IPython Notebook。
问题:scatter()
在 IPython NoteBook 中无法工作(我得到一个 NameError
)但在 IPython 中工作正常。
函数 rand()
也是如此。我猜 pylab
与 matplotlib
、scipy
、numpy
、random
和其他基本库一起加载。
如果我错了请告诉我。顺便说一下,我的 IPython 和 IPython NoteBook 都从我的 Anaconda Dist. 加载,如果这意味着什么的话。
此外,当我使用 --pylab
时我可以知道所有加载内容的任何资源都会有所帮助。
谢谢。
这就是 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])
这是您不应该使用 %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
,它具有不同的行为。看%pylab inline
前后help(all)
。此外,尝试 print(', '.join(sorted(globals().keys())))
之前和之后查看导入的大量内容。
正如其他人所提到的,%matplotlib inline
避免了这个问题以及它导致的后续微妙/难以发现的问题。