标签: jupyter

如何通过sympy在ipython笔记本上打印漂亮?

我试过pprint,print前者只打印Unicode版本,后者不做漂亮的打印.

from sympy import symbols, Function
import sympy.functions as sym
from sympy import init_printing
init_printing(use_latex=True)
from sympy import pprint
from sympy import Symbol

x = Symbol('x')

# If a cell contains only the following, it will render perfectly.
(pi + x)**2

# However I would like to control what to print in a function, 
# so that multiple expressions can be printed from a single notebook cell.
pprint((pi + x)**2)
Run Code Online (Sandbox Code Playgroud)

python pretty-print sympy jupyter jupyter-notebook

44
推荐指数
4
解决办法
3万
查看次数

如何从Jupyter笔记本上的*.IPYNB文件中执行*.PY文件?

我正在研究Python笔记本,我希望将大量输入代码[输入] 打包成[*.PY]文件并从笔记本中调用这些文件.

我知道从Notebook运行[ .PY]文件的操作,并且命令因Linux或Windows而异.但是当我执行此操作并从笔记本执行[.PY]文件时,它无法识别笔记本中加载的任何现有库或变量(就像[ .PY]文件从零开始...).

有没有什么办法解决这一问题?

问题的一个可能的简化示例如下:

In[1]:
import numpy as np
import matplotlib.pyplot as plt

In[2]:
def f(x):
    return np.exp(-x ** 2)

In[3]:
x = np.linspace(-1, 3, 100)

In[4]:
%run script.py
Run Code Online (Sandbox Code Playgroud)

" script.py "具有以下内容:

plt.plot(x, f(x))
plt.xlabel("Eje $x$",fontsize=16)
plt.ylabel("$f(x)$",fontsize=16)
plt.title("Funcion $f(x)$")
Run Code Online (Sandbox Code Playgroud)
  • 在真正的问题中,文件[*.PY]没有4行代码,它有足够的代码.

python jupyter

44
推荐指数
4
解决办法
8万
查看次数

jupyter笔记本在不同的环境中运行内核

我已经陷入了某种可怕的虚拟混乱.救命?!

我管理环境conda.直到最近,我才有了一个python2 jupyter笔记本内核,但我决定将自己踢到21世纪,并安装了一个python3内核; 我忘了我是怎么做到的.

我的主要(anaconda)python默认为2.7.

所以在这里,我很乐意尝试在我的闪亮的新python3内核中使用美丽的汤,我似乎无法做任何事情来找到它所在的任何环境.Viz(全部来自笔记本):

from bs4 import BeautifulSoup 

-> ImportError: No module named 'bs4'
Run Code Online (Sandbox Code Playgroud)

好的,好的,我将使用shell magic安装它.对?对?

! pip install bs4

--> Collecting bs4
  Downloading bs4-0.0.1.tar.gz
Requirement already satisfied (use --upgrade to upgrade): beautifulsoup4 in /Users/[MY-USER]/anaconda/lib/python2.7/site-packages (from bs4)
[...]
Successfully built bs4
Installing collected packages: bs4
Successfully installed bs4-0.0.1

from bs4 import BeautifulSoup 

-> ImportError: No module named 'bs4'
Run Code Online (Sandbox Code Playgroud)

不好了.即使我正在运行python3内核,它是否认为我在2.7 env?那不行.

! conda info --envs
--> # conda environments:
#
flaskenv                 /Users/[MY-USER]/anaconda/envs/flaskenv
mesa                     /Users/[MY-USER]/anaconda/envs/mesa
py35                     /Users/[MY-USER]/anaconda/envs/py35
root …
Run Code Online (Sandbox Code Playgroud)

python packages conda jupyter virtual-environment

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

使用多个Python和IPython路径运行Jupyter

我想和Jupyter笔记本一起工作,但是在进行基本导入时遇到了困难(例如导入matplotlib).我想这是因为我有几个用户管理的python安装.例如:

> which -a python
/usr/bin/python
/usr/local/bin/python

> which -a ipython
/Library/Frameworks/Python.framework/Versions/3.5/bin/ipython
/usr/local/bin/ipython

> which -a jupyter
/Library/Frameworks/Python.framework/Versions/3.5/bin/jupyter
/usr/local/bin/jupyter
Run Code Online (Sandbox Code Playgroud)

我曾经有过anaconda,但是从〜/ anaconda目录中删除了.现在,当我启动一个Jupyter笔记本时,我得到一个内核错误:

File "/Library/Frameworks/Python.framework/Versions/3.5/lib/pytho?n3.5/subprocess.py",
line 947, in init restore_signals, start_new_session)
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/pytho?n3.5/subprocess.py",
line 1551, in _execute_child raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2]
No such file or directory: '/Users/npr1/anaconda/envs/py27/bin/python' 
Run Code Online (Sandbox Code Playgroud)

我该怎么办?!

python ipython jupyter jupyter-notebook

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

我可以在命令行中运行Jupyter笔记本电脑吗?

我正在部署一个Python包,我想运行一个简单的测试,看看我的笔记本中的所有单元格是否都能正常运行.我想通过命令行测试这个,因为我在运行笔记本时遇到问题virtualenv.是否有简单的命令行方式来测试这个?


主持人注意:这个问题已被标记为如何从终端运行.ipynb Jupyter Notebook? .然而,这个问题是在那个问题的前几天(2016年2月18日2:49问)(16年2月22日3:35问).最多,该帖子可能被标记为重复,如果这样做,一个适当的行动将是合并这两个问题,保持这个,原始的,作为主.

但是,这些问题可能不重复(另一位作者的意图不清楚).无论如何,这个问题及其答案专门针对来自终端的jupyter笔记本中的执行单元,而不仅仅是将笔记本转换为python文件.

python command-line ipython jupyter

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

将jupyter笔记本变成python脚本的最佳实践

Jupyter(iPython)笔记本当之无愧地被认为是一个很好的工具,用于对代码进行原型设计并以交互方式进行各种机器学习.但是当我使用它时,我不可避免地遇到以下问题:

  • 笔记本电脑很快就变得过于复杂和混乱而无法进行维护和改进,而且我必须制作python脚本;
  • 当涉及到生产代码(例如每天需要重新运行的代码)时,笔记本电脑再次不是最好的格式.

假设我在jupyter中开发了一个整机学习管道,包括从各种来源获取原始数据,清理数据,特征工程和培训模型.现在用高效可读的代码从中制作脚本的最佳逻辑是什么?到目前为止,我曾经用几种方法解决它:

  1. 只需将.ipynb转换为.py,只需稍加修改,就可以将笔记本中的所有管道硬编码为一个python脚本.

    • '+':快
    • ' - ':脏,不灵活,维护不方便
  2. 制作一个包含许多函数的单个脚本(对于每一个或两个单元格大约有1个函数),尝试使用单独的函数组成管道的各个阶段,并相应地命名它们.然后通过指定所有参数和全局常量argparse.

    • '+':使用更灵活; 更可读的代码(如果您正确地将管道逻辑转换为函数)
    • ' - ':通常情况下,管道不能拆分成逻辑上完成的部分,这些部分可以成为函数而代码中没有任何怪癖.所有这些函数通常只需要在脚本中调用一次,而不是在循环,映射等内多次调用.此外,每个函数通常都会获取之前调用的所有函数的输出,因此必须将多个参数传递给每个函数.功能.
  3. 与point(2)相同,但现在将所有函数包装在类中.现在,所有全局常量以及每个方法的输出都可以存储为类属性.

    • '+':您不需要为每个方法传递许多参数 - 所有以前的输出都已存储为属性
    • ' - ':任务的整体逻辑仍未被捕获 - 它是数据和机器学习管道,而不仅仅是类.该类的唯一目标是创建,逐个调用所有方法,然后删除.除此之外,课程实施起来还很长.
  4. 使用多个脚本将笔记本转换为python模块.我没有试过这个,但我怀疑这是解决这个问题的最长方法.

我想,这种整体设置在数据科学家中非常普遍,但令人惊讶的是我无法找到任何有用的建议.

伙计们,请分享您的想法和经验.你有没有遇到过这个问题?你是怎么解决它的?

python refactoring readability ipython-notebook jupyter

37
推荐指数
2
解决办法
8503
查看次数

如何让ipywidgets在Jupyter Lab工作?

在Jupyter Notebook中,ipywidgets运行良好,但它们似乎在Jupyter Lab中不起作用(据说它比Notebook更好).

我遵循了这些指示.

第1步:安装Node.js(https://nodejs.org/en/)

第2步:使用conda在Python 3上安装了需求:

conda install -c conda-forge ipywidgets
jupyter labextension install @jupyter-widgets/jupyterlab-manager
Run Code Online (Sandbox Code Playgroud)

不幸的是,基本的小部件在jupyter实验室笔记本中不起作用:

在此输入图像描述

python ipython jupyter ipywidgets jupyter-lab

37
推荐指数
4
解决办法
2万
查看次数

在Jupyter笔记本中绘制交互式决策树

有没有办法在Jupyter笔记本中绘制决策树,以便我可以交互式地探索它的节点?我在考虑这样的事情DT.这是KNIME的一个例子.

我找到了https://planspace.org/20151129-see_sklearn_trees_with_d3/https://bl.ocks.org/ajschumacher/65eda1df2b0dd2cf616f,我知道你可以在Jupyter中运行d3,但是我没有找到任何包,那样做.

python machine-learning decision-tree scikit-learn jupyter

37
推荐指数
3
解决办法
2359
查看次数

Jupyter Notebook:命令隐藏单元格的输出?

在我的笔记本中,我有一个返回临时计算结果的单元格.它有点长,所以在它运行后,我想隐藏它,并在需要时显示它.

要手动完成,我可以双击输出的左侧,以隐藏它

在此输入图像描述

双击后 在此输入图像描述

但有什么方法可以通过代码来做到这一点?例如,

单元格的最后一行,使用类似的命令%%hide output,输出将在完成运行后隐藏.

另外,我可以在输出HTML中获得此功能吗?

ipython jupyter jupyter-notebook

36
推荐指数
4
解决办法
3万
查看次数

在jupyter/ipython notebook中将命令行参数传递给argv

我想知道是否可以sys.argv在jupyter/ipython笔记本中使用命令行参数填充(或其他一些结构),类似于通过python脚本完成的操作.

例如,如果我按如下方式运行python脚本:

python test.py False

然后sys.argv将包含参数False.但是,如果我以类似的方式运行一个jupyter笔记本:

jupyter notebook test.ipynb False

然后命令行参数丢失.有没有办法从笔记本本身访问这个参数?

python command-line-arguments jupyter jupyter-notebook papermill

36
推荐指数
6
解决办法
5万
查看次数