如何在ipython Notebook的JavaScript代码中使用python定义的变量?

tag*_*oma 2 ipython ipython-notebook

假设我使用Ipython笔记本与Scipy工厂进行了复杂的数值计算。现在,我想从Javascript中的代码(仍在IPYNB中)调用Scipy计算得出的变量。

以下是我愿意完成的工作的简单说明:

# Get a vector of 4 normal random numbers using numpy - the variable 'rnd'
import numpy as np
mu, sig = 0.05, 0.2
rnd = np.random.normal(loc=mu, scale=sig, size=4)
Run Code Online (Sandbox Code Playgroud)

现在,我想rnd在Javascript中使用上面的变量,用于说明目的:

%%javascript
element.append(rnd);
Run Code Online (Sandbox Code Playgroud)

上面的行返回消息错误:ReferenceError: rnd is not defined

然后,如何在Ipython Notebook中的javascript代码中使用python变量?

Dav*_*ith 5

使用%%JavascriptCell Magic 可能无法做到这一点。但是,您可以使用该IPython.display.Javascript(...)方法将Python字符串注入浏览器输出区域。这是您的代码片段的修改,似乎可以回答您的问题。

from IPython.display import Javascript

import numpy as np
mu, sig = 0.05, 0.2
rnd = np.random.normal(loc=mu, scale=sig, size=4)

## Now, I want to use the variable rnd above in Javascript, for illustrative purpose:

javascript = 'element.append("{}");'.format(str(rnd))

Javascript(javascript)
Run Code Online (Sandbox Code Playgroud)

将此代码粘贴到输入单元格中,每次执行该单元格时,新的和不同的随机数数组将显示在输出单元格中。

(代码已通过IPython 2.2版进行了测试)