jupyter notebook
jupyter notebook 可运行的编程语言#
Jupyter Notebook 的前身是 IPython Notebook。后来,它扩展为支持多种编程语言,包括但不限于:
- Python
- R
- Julia
- Scala
- Ruby
- JavaScript
- Bash
- C++
- Go
- Kotlin
这种多语言支持使得 Jupyter Notebook 成为数据科学、机器学习和教育领域的强大工具。
安装 jupyter notebook#
推荐使用 pip 安装。
在终端执行:
pip install jupyter metakernel
安装完毕后,测试是否正常运行。
在终端输入:
jupyter-notebook
安装 root 之后,在个人 home 目录.bashrc 文件中添加
source (pathof)thisroot.sh
进入自己的项目目录,在终端执行
root --notebook
添加 Kernel 的步骤#
在 Jupyter Notebook 中添加新的 Kernel,可以按照以下步骤操作:
-
安装所需的编程语言环境
确保已安装目标编程语言的运行时环境。例如,安装 Python、R 或 Julia 等。 -
安装 Jupyter Kernel
根据目标语言安装相应的 Jupyter Kernel。例如:- 对于 Python,可以使用
ipykernel
:
pip install ipykernel
- 对于 R,可以使用
IRkernel
:
install.packages("IRkernel") IRkernel::installspec()
- 对于 Julia,可以使用
IJulia
:
using Pkg Pkg.add("IJulia")
- 对于 C#,可以使用
dotnet-interactive
:
dotnet tool install -g Microsoft.dotnet-interactive dotnet interactive jupyter install
或者clingkernel
:
pip install clingkernel clingkernel install --sys-prefix
- 对于 Python,可以使用
-
注册 Kernel
安装完成后,Kernel 会自动注册到 Jupyter Notebook。如果未自动注册,可以手动执行相关命令。例如:
python -m ipykernel install --user --name=my_kernel_name
-
启动 Jupyter Notebook
启动 Jupyter Notebook 并在新建文件时选择刚刚添加的 Kernel。
通过以上步骤,您可以在 Jupyter Notebook 中添加并使用新的 Kernel,从而支持更多的编程语言。
在 Jupyter Notebook 中运行 Bash 脚本#
在 Jupyter Notebook 中,可以通过以下几种方式运行 Bash 脚本:
-
使用
!
命令
在代码单元中直接使用!
来运行 Bash 命令或脚本。例如:
!sh script.sh
-
使用
subprocess
模块
在 Python 代码中使用subprocess
模块运行 Bash 脚本。例如:
import subprocess subprocess.run(['sh', 'script.sh'])
-
使用
%%bash
魔法命令
在代码单元中使用%%bash
魔法命令运行 Bash 脚本。例如:
%%bash # Bash 脚本内容 sh script.sh
通过以上方法,可以在 Jupyter Notebook 中方便地运行 Bash 脚本,从而实现与系统命令的交互。
jupyter使用root#
jupyroot
1. Install ROOT6 (> 6.05)
2. Install dependencies: pip install jupyter metakernel
开始使用 ROOTbooks#
设置 ROOT 环境(. $ROOTSYS/bin/thisroot.[c]sh
),然后在终端中输入:
root --notebook
这将在您的计算机上启动一个带有 ROOT 功能的 notebook 服务器。
或者,如果您希望直接使用 Jupyter 命令,可以执行以下操作:
jupyter kernelspec install $ROOTSYS/etc/root/notebook/kernels/root --user
服务器启动后,您可以使用 ROOT 提供的两种 Kernel:
- ROOT C++:由 ROOT 提供的新 Kernel
- Python:Jupyter 已经提供的 Kernel
C++ ROOTbook#
ROOT 提供了一个 C++ Kernel,将 notebook 转变为一个 ROOT 提示符。该 Kernel 提供了嵌入式图形、语法高亮和自动补全等功能。
以下是如何在 C++ ROOTbook 中绘制直方图的示例:
TCanvas c;
TH1F h("h","ROOT Histo;X;Y",64,-4,4);
h.FillRandom("gaus");
h.Draw();
c.Draw();
Python ROOTbook#
如果您更喜欢使用 Python,可以创建一个新的 Python Kernel 并导入 ROOT 库:
import ROOT
然后您可以编写如下代码:
c = ROOT.TCanvas("c")
h = ROOT.TH1F("h","ROOT Histo;X;Y",64,-4,4)
此外,您还可以通过使用 %%cpp 魔法命令在同一个 notebook 中混合使用 Python 和 C++:
%%cpp
h->FillRandom("gaus");
h->Draw();
c->Draw();
假如要在Jupyter里调用其他地方的函数,得:
%%cpp
#pragma cling add_include_path("include")
#include "/data4/tbt23/smsimulator5.5/anal_D_tbt/original_data_tbt/include/get_ratio.h"
#include "/data4/tbt23/smsimulator5.5/anal_D_tbt/original_data_tbt/src/get_ratio.cpp"
目前我搞不清楚相对路径是相对的什么东西。特别是get_ratio.cpp里面应该怎么写.h文件的路径。但写绝对路径肯定没错...
jupyter 魔法命令#
Jupyter Notebook 提供了许多魔法命令(Magic Commands),可以帮助用户更高效地完成任务。这些命令分为两类:行魔法命令(以 %
开头)和单元魔法命令(以 %%
开头)。
常用行魔法命令#
# 列出所有可用的魔法命令
%lsmagic
-
%time
用于测量单行代码的执行时间。例如:
%time sum(range(1000000))
-
%timeit
用于多次运行代码并测量平均执行时间。例如:
%timeit sum(range(1000000))
-
%who
和%whos
显示当前命名空间中的变量。例如:
%who %whos
-
%run
运行外部 Python 脚本。例如:
%run script.py
-
%matplotlib
设置 matplotlib 的绘图模式。例如:
%matplotlib inline
常用单元魔法命令#
-
%%time
测量整个单元代码的执行时间。例如:
%%time total = 0 for i in range(1000000): total += i
-
%%writefile
将单元内容写入文件。例如:
%%writefile script.py print("Hello, World!")
-
%%bash
在单元中运行 Bash 脚本。例如:
%%bash echo "Hello from Bash"
-
%%capture
捕获单元输出并存储到变量中。例如:
%%capture captured_output print("This will be captured")
通过使用这些魔法命令,您可以更高效地完成数据分析、脚本运行和调试等任务。
jupyter 快捷键#
Jupyter Notebook 提供了许多快捷键,可以帮助用户更高效地操作和编辑 notebook。以下是一些常用的快捷键:
命令模式(按 Esc
进入)#
- Enter:进入编辑模式
- Shift + Enter:运行当前单元并跳转到下一个单元
- Ctrl + Enter:运行当前单元
- Alt + Enter:运行当前单元并在其下方插入一个新单元
- A:在当前单元上方插入一个新单元
- B:在当前单元下方插入一个新单元
- D + D:删除当前单元
- Z:撤销删除单元
- Y:将当前单元设置为代码单元
- M:将当前单元设置为 Markdown 单元
- H:显示快捷键帮助
- Shift + M:合并选中的单元
编辑模式(按 Enter
进入)#
- Ctrl + A:全选
- Ctrl + Z:撤销
- Ctrl + Shift + Z:重做
- Ctrl + Home:跳转到单元开头
- Ctrl + End:跳转到单元末尾
- Tab:代码补全或缩进
- Shift + Tab:显示工具提示
- Ctrl + /:注释或取消注释选中的代码
通用快捷键#
- Ctrl + S:保存 notebook
- Ctrl + Shift + P:打开命令面板
- Shift + L:切换行号显示
- O:切换单元输出的显示/隐藏
- Shift + O:切换单元输出的滚动模式
ipyplot#
video_paths = ["my_video.mp4"]
video_labels = ["My Video"]
ipyplot.plot_videos(video_paths, video_labels, width=320)
import matplotlib.pyplot as plt
import numpy as np
import ipyplot
import tempfile
import os
# 1. 使用 matplotlib 绘制图形
x = np.linspace(0, 10, 100)
y = np.sin(x)
plt.plot(x, y)
plt.xlabel("X轴")
plt.ylabel("Y轴")
plt.title("Matplotlib 图形")
# 2. 创建一个临时文件来保存 matplotlib 图形
with tempfile.NamedTemporaryFile(suffix=".png", delete=False) as tmp_file:
temp_filename = tmp_file.name
plt.savefig(temp_filename)
# 3. 使用 ipyplot 显示临时图像文件
ipyplot.plot_images([temp_filename], ["Matplotlib Plot"], img_width=400)
# 4. 清理临时文件
os.remove(temp_filename)
创建日期: 2025-04-30