我想阻止在 iPython 笔记本中打印的函数。
在标准 python 中,可以防止打印问题中回答的某些代码行:To prevent a function from print in the batch console in Python然而,此方法在 iPython notebook 中不起作用,在重新启动内核之前丢失输出。
我发现的最相似的功能是使用魔术函数避免显示完整的单元格:
%%capture capt
Run Code Online (Sandbox Code Playgroud)
然而,这个神奇的函数会阻塞整个单元格,在 iPython notebook 中有什么方法可以避免只打印代码中的一些行吗?
我在为天气时间序列绘制 AR 和 MA 模型时遇到问题。例如:
from statsmodels.tsa.arima_process import arma_generate_sample
def gen_ar2(alpha1,alpha2,size):
ar = [1,-alpha1,-alpha2]
ma = [1]
return arma_generate_sample(ar,ma,size)
Run Code Online (Sandbox Code Playgroud)
因此,如果我想绘制让我们说 x(t) = 0.75 x(t-1) - 0.125 x(t-2) + w(t),其中 w(t) 是平均值为 0 且方差为 1 的正态分布(让说)...在 ipython notebook 上绘制这通常会绘制两次,即
sm.graphics.tsa.plot_acf(gen_ar2(0.75,-0.125,size=5000),lags=40)
Run Code Online (Sandbox Code Playgroud)
这为我创建了两个图而不是一个。我如何阻止 ipython 这样做?
谢谢
我一直在使用 APScheduler,在尝试运行代码时出现错误“找不到名为‘间隔’的触发器”
它在我的本地机器上完美无缺,但可以在我的云机器上运行。
我尝试过:通过 pip、easy_install 和手动重新安装 apscheduler;升级安装工具;升级所有依赖项。
编辑:代码
if __name__ == '__main__':
scheduler = BlockingScheduler()
scheduler.add_job(SMS, 'interval', minutes=1)
scheduler.start()
print Run Complete
try:
# This is here to simulate application activity (which keeps the main thread alive).
while True:
time.sleep(2)
except (KeyboardInterrupt, SystemExit):
scheduler.shutdown() # Not strictly necessary if daemonic mode is enabled but should be done if possible
LookupError Traceback (most recent call last)
<ipython-input-40-2895cd586d3f> in <module>()
1 if __name__ == '__main__':
2 scheduler = BlockingScheduler()
----> 3 scheduler.add_job(SMS, …Run Code Online (Sandbox Code Playgroud) 在 ipython notebook 中,我调用从我自己的模块导入的函数并运行一些代码。我注意到,如果我更改函数中的代码(笔记本外部)并执行笔记本,则旧版本的函数会运行。
当我记得时,ipython notebook 或 firefox 似乎正在缓存我可以用 ctrl-F5 清除的模块。是否有 ipython notebook 函数调用来确保我运行的是最新代码?
我有一列年龄值,我需要将其转换为 18-29、30-39、40-49、50-59、60-69 和 70+ 的年龄范围:
对于 df 'file' 中的一些数据的示例,我有:
并希望前往:
我尝试了以下方法:
file['agerange'] = file[['age']].apply(lambda x: "18-29" if (x[0] > 16
or x[0] < 30) else "other")
Run Code Online (Sandbox Code Playgroud)
我宁愿不只是进行分组,因为桶的大小不统一,但如果可行,我愿意将其作为解决方案。
提前致谢!
我想将 IPython 笔记本与一些 shell 命令及其输入放在一起。在 bash 提示中,我可以使用“here-document”语法:
bash-3.2$ mysql -u root <<END_IPUT
> use mydb;
> show tables;
> END_INPUT
Run Code Online (Sandbox Code Playgroud)
如何在 IPython 中获得相同的效果,特别是在 jupyter 笔记本中?我知道如何将 shell 命令作为 IPython 执行为“行魔术”或“单元魔术”,例如:
In [7]: !! ls -tF
Out[7]: ['Demo-notebook.ipynb',
'createdb.sql',
...
Run Code Online (Sandbox Code Playgroud)
我已经将IPython 视为一个系统 shell,它展示了如何启用一些语法细节。在以下之后,我可以运行系统命令而无需预先添加!或!!
# Turn everything in $PATH into an alias;
# then enable calling aliases without ! or %
%rehashx
%autocall 2
Run Code Online (Sandbox Code Playgroud)
但是这些都无助于为这些命令提供输入内联:here-document 语法在 IPython 中无效,并导致 python SyntaxError。那么我该怎么做呢?
我通过终端更新sklearn版本
conda install scikit-learn=0.18
Run Code Online (Sandbox Code Playgroud)
如果我列出 conda list scikit-learn
# packages in environment at /Users/Claudia/anaconda:
scikit-learn 0.18.1 np111py27_1
scikit-learn 0.18.1 <pip>
Run Code Online (Sandbox Code Playgroud)
但如果我在笔记本中运行
print('The scikit-learn version is {}.'.format(sklearn.__version__))
Run Code Online (Sandbox Code Playgroud)
结果是
The scikit-learn version is 0.17.1.
Run Code Online (Sandbox Code Playgroud)
如何解决和更新 Jupyter Notebook 中的版本?
python python-2.7 scikit-learn ipython-notebook jupyter-notebook
我正在尝试添加 Cntl+K 和 Cntl+J 快捷方式来快速上下移动单元格。我在 Github 上查看了有关添加快捷方式的问题,并找到了一个可行的答案:
“对于喜欢此快捷方式的人(如我),请将其添加到您的 ~/.ipython/profile_default/static/custom/custom.js:
$([IPython.events]).on("app_initialized.NotebookApp", function () {
IPython.keyboard_manager.command_shortcuts.add_shortcut('ctrl-k', function (event) {
IPython.notebook.move_cell_up();
return false;
});
IPython.keyboard_manager.command_shortcuts.add_shortcut('ctrl-j', function (event) {
IPython.notebook.move_cell_down();
return false;
});
Run Code Online (Sandbox Code Playgroud)
});
”
但是我的 users/{my name}/.ipython/profile_default 目录没有静态文件夹。我尝试添加丢失的文件夹和 custom.js 文件,并重新打开 Anaconda 提示,但这并没有添加丢失的快捷方式。
另一个答案有同样的问题:
“使用以下内容:
$ cat ~/.jupyter/custom/custom.js
define(["base/js/namespace"], function(Jupyter){
console.info('Binding Ctrl-J/K to move cell up/down');
Jupyter.keyboard_manager.command_shortcuts.add_shortcut('Ctrl-k','jupyter-notebook:move-cell-up');
Jupyter.keyboard_manager.command_shortcuts.add_shortcut('Ctrl-j','jupyter-notebook:move-cell-down');
});
Run Code Online (Sandbox Code Playgroud)
”
这个答案也不起作用(添加丢失的文件夹和 custom.js 文件不起作用)。
与此问题类似,我想使用以下代码从单个 ipython-notebook 单元格中绘制多个图形:
[1]:
%matplotlib inline
import igraph # it is `pip install python-igraph` on py2
import matplotlib.pyplot as plt
import numpy as np
[2]:
# draws a graph successfully
igraph.plot(igraph.Graph.Erdos_Renyi(10, .5))
[3]:
for p in np.arange(.3, .8, .1):
g = igraph.Graph.Erdos_Renyi(10, p)
igraph.plot(g)
Run Code Online (Sandbox Code Playgroud)
如何从[3]笔记本上的单元格显示多个图形?
如果我想绘制一些像这样的 matplotlib 图表,似乎可以使用这个解决方案:
[4]:
for p in np.arange(.3, .8, .1):
g = igraph.Graph.Erdos_Renyi(10, p)
plt.loglog(sorted(g.degree(), reverse=True), marker='o')
plt.show()
Run Code Online (Sandbox Code Playgroud)
但这不适用于 igraph 图 AFAICS。有什么方法可以转换igraph.drawing.Plot为更熟悉 matplotlib 的对象吗?
假设我有函数,它接受参数列表。列表可以是可变长度的,功能也可以。例如:
import math
import numpy as np
import matplotlib.pyplot as plt
from ipywidgets import interact, interactive, fixed, interact_manual
import ipywidgets as widgets
%matplotlib inline
def PlotSuperposition(weights):
def f(x):
y = 0
for i, weight in enumerate(weights):
if i==0:
y+=weight
else:
y += weight*math.sin(x*i)
return y
vf = np.vectorize(f)
xx = np.arange(0,6,0.1)
plt.plot(xx, vf(xx))
plt.gca().set_ylim(-5,5)
PlotSuperposition([1,1,2])
Run Code Online (Sandbox Code Playgroud)
显示
我可以对给定数量的参数进行硬编码交互,就像这里
interact(lambda w0, w1, w2: PlotSuperposition([w0,w1,w2]), w0=(-3,+3,0.1), w1=(-3,+3,0.1), w2=(-3,+3,0.1))
Run Code Online (Sandbox Code Playgroud)
这表现了
但是如何以编程方式定义滑块的数量?
我试过
n_weights=10
weight_sliders = [widgets.FloatSlider(
value=0,
min=-10.0,
max=10.0,
step=0.1,
description='w%d' % i,
disabled=False, …Run Code Online (Sandbox Code Playgroud) ipython-notebook ×10
python ×8
ipython ×5
matplotlib ×2
apscheduler ×1
igraph ×1
interactive ×1
jupyter ×1
plot ×1
python-2.7 ×1
scikit-learn ×1