标签: ipython-notebook

如何检查matplotlib的pylab后端是否内联运行?

我正在修改一个使用matplotlib绘制一些特殊图形的python模块.

现在,这个模块只是将所有数字保存为文件.

我希望能够在ipython笔记本中工作时导入模块并查看结果"内联",另一方面我希望保留默认功能,将模块保存为文件,当模块导入所有其他模块时案例.

所以我需要以某种方式检查模块是否在ipython笔记本中导入并且pylab是否内联操作.

我怎么检查这个?

python matplotlib ipython ipython-notebook

10
推荐指数
2
解决办法
3738
查看次数

IPython Notebook:使用GUI打开/选择文件(Qt Dialog)

当您在笔记本上对不同的数据文件执行相同的分析时,可以方便地以图形方式选择数据文件.

在我的python脚本中,我通常会实现一个QT对话框,它返回所选文件的文件名:

from PySide import QtCore, QtGui

def gui_fname(dir=None):
    """Select a file via a dialog and return the file name.
    """
    if dir is None: dir ='./'
    fname = QtGui.QFileDialog.getOpenFileName(None, "Select data file...", 
            dir, filter="All files (*);; SM Files (*.sm)")
    return fname[0]
Run Code Online (Sandbox Code Playgroud)

但是,从笔记本运行此功能

full_fname = gui_fname()
Run Code Online (Sandbox Code Playgroud)

导致内核死亡(并重启):

有趣的是,将3个命令放在3个单独的单元格中

%matplotlib qt
full_fname = gui_fname()
%matplotlib inline
Run Code Online (Sandbox Code Playgroud)

但是当我将这些命令放在一个单元中时,内核会再次死掉.

这可以防止创建类似于gui_fname_ipynb()透明地允许使用GUI选择文件的功能.

为方便起见,我创建了一个说明问题的笔记本:

有关如何在IPython Notebook中执行文件选择对话框的任何建议吗?

ipython ipython-notebook

10
推荐指数
2
解决办法
7538
查看次数

如何在IPython Notebook中正确渲染数学表

我正在解决的数学问题在不同的场景中提供了不同的分析解决方案,我想在一个很好的表格中总结结果.IPython Notebook可以很好地呈现列表:例如:

import sympy
from pandas import DataFrame
from sympy import *
init_printing()
a, b, c, d = symbols('a b c d')
t = [[a/b, b/a], [c/d, d/c]]
t
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但是,当我使用DataFrame将答案汇总到表中时,无法再渲染数学:

df = DataFrame(t, index=['Situation 1', 'Situation 2'], columns=['Answer1','Answer2'])
df
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

"print df.to_latex()"也给出了相同的结果.我也尝试过"print(latex(t))",但是在LaTex中编译完成后就可以了,这很好,但是我还是需要手动将它转换成表格:

在此输入图像描述

我应该如何正确使用DataFrame才能正确渲染数学?或者有没有其他方法将数学结果导出到Latex中的表中?谢谢!

更新:01/25/14再次感谢@Jakob解决问题.它适用于简单矩阵,但对于更复杂的数学表达式仍然存在一些小问题.但我想@asmeurer说,完美需要IPython和Pandas的更新.

在此输入图像描述

更新:01/26/14如果我直接渲染结果,即只打印列表,它工作正常: 在此输入图像描述

latex sympy ipython pandas ipython-notebook

10
推荐指数
1
解决办法
5421
查看次数

IPython笔记本不可读

所以我第一次安装了IPython(Windows 7 64位).按照这里的说明:

IPython安装

下载并安装了Anaconda 1.9.1然后给出了命令

conda update conda
conda update ipython
Run Code Online (Sandbox Code Playgroud)

(以管理员身份运行命令行终端)

安装完成OK,我试图从这里打开一个示例.ipynb笔记本文件;

示例IPython Notebook文件

但我得到以下错误;

Error loading notebook
Unreadable Notebook: Notebook does not appear to be JSON: '\n\n
Run Code Online (Sandbox Code Playgroud)

我已经尝试了一些来自IPython示例笔记本的其他示例笔记本,并且都无法打开并给出相同的错误!

谁知道这里有什么问题以及如何解决?

ipython ipython-notebook

10
推荐指数
1
解决办法
1万
查看次数

用于Matplotlib交互的IPython Notebook小部件

我想使用ipython笔记本小部件为内联matplotlib图添加一定程度的交互性.

一般情况下,情节可能很重,我只想更新情节的特定元素.我知道小部件内置一个限制功能,有助于不会泛滥内核,但是当情节需要说30秒时,我不想等待这么长时间来更新一行.

通过阅读示例笔记本,我能够创建一个基本示例,其中我将一个十字光标(由2个滑块驱动)添加到mpl轴.

问题是图形显示两次.这是代码(单元格1):

fig, ax = plt.subplots() 
ax.plot([3,1,2,4,0,5,3,2,0,2,4])
Run Code Online (Sandbox Code Playgroud)

...数字显示...,单元格2(编辑:感谢Thomas K的改进):

vline = ax.axvline(1)
hline = ax.axhline(0.5)

def set_cursor(x, y):
    vline.set_xdata((x, x))
    hline.set_ydata((y, y))
    display(fig)
Run Code Online (Sandbox Code Playgroud)

最后(单元格3):

interact(set_cursor, x=(1, 9, 0.01), y=(0, 5, 0.01))
Run Code Online (Sandbox Code Playgroud)

再次显示小部件的图形.

所以问题是:

  1. 如何禁止第一个数字显示?
  2. 这是正确的方法,还是有更好的方法?

编辑

我发现了一个ipython配置旋钮,根据这款笔记本,可以禁止数字显示

%config InlineBackend.close_figures = False
Run Code Online (Sandbox Code Playgroud)

虽然示例笔记本工作,但我无法弄清楚如何单独使用此选项(没有链接示例中提供的上下文管理器类)来隐藏图形显示.

编辑2

我发现了一些文件的的InlineBackend.close_figures配置.

编辑3

由@shadanan回答引发,我想澄清一下我的目的是将光标添加到现有图形,而不是在每个光标移动时从头开始重绘图.合并单个单元格中的3个单元格:

fig, ax = plt.subplots()
ax.plot([3,1,2,4,0,5,3,2,0,2,4])

vline = ax.axvline(1)
hline = ax.axhline(0.5)

def set_cursor(x, y):
    vline.set_xdata((x, x))
    hline.set_ydata((y, y))
    display(fig)

interact(set_cursor, x=(1, 9, 0.01), y=(0, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib ipython ipython-notebook

10
推荐指数
1
解决办法
7449
查看次数

使用IPython Notebook Web界面移动.ipynb

.ipynb根目录中创建文件后/,如何将该.pynb文件移动到更深的目录中,即:/subdirectory 使用Web UI

python ipython ipython-notebook

10
推荐指数
3
解决办法
2万
查看次数

Ipython Notebook:如何运行多个单元格?

我的笔记本有点长,我把它分成几个部分.有时,我只是想运行它的某个部分,即consecutive cells

例如, 在此输入图像描述

我想跑Cell IN [52] to[54],不跑IN [51],[59].我该怎么做?

我只知道有选项run above,run below我没有看见像什么run selected cells.


更新:现在Jupyter Notebook内置了这个功能,只需按CTRL +单击即可

在此输入图像描述

ipython-notebook jupyter

10
推荐指数
1
解决办法
9639
查看次数

在当地为Jupyter孵化器仪表板提供服务的最简单方法

我一直在探索Jupyter Incubator Dashboards项目中的第一步和第二步(更多信息请访问:https://github.com/jupyter-incubator/dashboards/wiki).将我的笔记本变成可用的仪表板很简单,这很棒.

我的问题是我不确定第三步,即共享/托管仪表板.我在一个拥有本地服务器的企业环境中.我需要能够在本地服务器上共享仪表板,然后让人们通过Web访问它们.从本质上讲,我需要从第二步(dashboards_bundlers)中"部署为本地仪表板"选项.但是,似乎现在不推荐使用此功能.

我的问题是,有一种简单的方法可以在这里本地共享仪表板吗?我一直在看dashboards_server应用程序,但它现在看起来有点过头了.这里的功能看起来很强大,但可能比我们目前需要的更多.

如果这是唯一的选择,那么我将继续前进,但我想先看看是否有人有更简单的解决方案.

python ipython ipython-notebook jupyter jupyter-notebook

10
推荐指数
1
解决办法
655
查看次数

Jupyter笔记本时间分析

所以我通过anaconda安装了jupyter笔记本,我正在使用python 3内核.

我试图用做时间分析%time魔术命令,显示这里 的问题是,它只能打印挂钟时间不是CPU时间

使用%time%%time没有帮助

  • %time打印壁时间第一线
  • %%time打印挂钟时间全细胞

我不确定是否有任何特定配置来打印CPU时间

编辑

澄清使用%%time应该打印整个单元格的两个指标

  • 指标1:CPU时间
  • 指标2:壁挂时间

我的问题是我只能获得壁时而不是CPU时间.

您可以查看此链接的预期输出%%time

python python-3.x ipython-notebook ipython-magic jupyter-notebook

10
推荐指数
1
解决办法
9123
查看次数

如何修复Jupyter中pandas的tqdm progress_apply?

真的不明白它是一个错误或者只是我的局部问题,仍然有一些问题与使用tqdm进度条progress_apply在Jupyter.

第一次尝试:

from tqdm import tqdm
tqdm_notebook.pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))
Run Code Online (Sandbox Code Playgroud)

输出(没有任何条形):

AttributeError: 'function' object has no attribute 'pandas'
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

from tqdm import tqdm
tqdm_notebook().pandas(desc="Example Desc")
keywords_df['keyword'] = keywords_df['keywird'].progress_apply(lambda x: x.replace('*',''))
Run Code Online (Sandbox Code Playgroud)

输出: 两个条(需要一个).第一个栏是空的(0:[00:00,?it/s]),第二个是OK.

任何想法如何更改progress_apply描述和显示栏没有空的初始化栏?:)

PS 文档(https://github.com/tqdm/tqdm)说我可以使用tqdm_notebook,但它对我不起作用:)

# Register `pandas.progress_apply` and `pandas.Series.map_apply` with `tqdm`
# (can use `tqdm_gui`, `tqdm_notebook`, optional kwargs, etc.)
tqdm.pandas(desc="my bar!")
Run Code Online (Sandbox Code Playgroud)

pandas ipython-notebook jupyter jupyter-notebook tqdm

10
推荐指数
5
解决办法
7166
查看次数