【jupyter】mac os系统下的jupyter的实用技巧
Jupyter notebook是一个开源的web应用,可以让你创建和分享包含代码、公式、可视化和叙述文本的文档。它可以用于数据清洗和转换、数值模拟、统计建模、数据可视化、机器学习等多种用途。
在mac os系统下,有多种方法可以安装jupyter notebook,这里介绍两种常用的方法:
文章目录
方法一:使用pip安装jupyter notebook
pip是Python的包管理工具,可以方便地安装和卸载Python的第三方库。使用pip安装jupyter notebook的步骤如下:
- 安装最新版本的Python3,在终端中输入python3 --version检查是否安装成功。
- 检查pip3是否正确安装,在终端中输入pip3 --version查看版本信息。
- 升级pip3以避免安装过程中出现错误,在终端中输入pip3 install --upgrade pip执行升级命令。
- 使用pip3安装jupyter notebook,在终端中输入pip3 install jupyter执行安装命令。
方法二:使用setup.py安装jupyter notebook
setup.py是Python的打包工具,可以从源代码编译和安装Python的第三方库。使用setup.py安装jupyter notebook的步骤如下:
- 下载jupyter notebook的最新源码包,可以从这里找到,也可以在终端中输入curl https://files.pythonhosted.org/packages/c9/a9/371d0b8fe37dd231cf4b2cff0a9f0f25e98f3a73c3771742444be27f2944/jupyter-1.0.0.tar.gz > jupyter.tar.gz下载到当前目录。
- 解压下载的源码包,在终端中输入tar -xzvf jupyter.tar.gz执行解压命令。
- 进入解压后的文件夹,在终端中输入cd jupyter-1.0.0切换到源码目录。
- 使用setup.py安装jupyter notebook,在终端中输入python3 setup.py install执行安装命令。注意:你必须在你的系统中安装了XCode MacOS的开发者工具。
验证jupyter notebook的安装
无论使用哪种方法安装jupyter notebook,都可以在终端中输入jupyter notebook启动jupyter notebook并验证是否安装成功。如果没有出现任何错误,就说明安装成功了。
除了安装jupyter notebook之外,还有一些实用的技巧可以让你更高效地使用jupyter notebook。这里列举一些常用的技巧,包括不限于缩进、注释等,并给出具体的样例。
键盘快捷键
键盘快捷键可以节省你大量的时间,让你更快地操作jupyter notebook。jupyter notebook提供了很多键盘快捷键,你可以在菜单栏中找到:Help > Keyboard Shortcuts,或者在命令模式下(稍后介绍)按H查看。每次更新jupyter notebook时,都值得检查一下键盘快捷键,因为可能会增加一些新的快捷键。
命令模式和编辑模式
jupyter notebook有两种模式:命令模式和编辑模式。命令模式下,你可以使用键盘快捷键来操作单元格,比如插入、删除、移动、复制、粘贴等。编辑模式下,你可以在单元格中输入代码或文本。你可以通过单元格左边的颜色来判断当前是哪种模式:蓝色表示命令模式,绿色表示编辑模式。
你可以使用Esc键从编辑模式切换到命令模式,使用Enter键从命令模式切换到编辑模式。在命令模式下,你还可以使用双击鼠标或者按B键来创建一个新的单元格。
单元格类型
jupyter notebook支持两种类型的单元格:代码单元格和Markdown单元格。代码单元格可以让你输入和执行Python代码,Markdown单元格可以让你输入和渲染Markdown文本。Markdown是一种轻量级的标记语言,可以让你用简单的符号来格式化文本,比如加粗、斜体、标题、列表、链接等。
你可以在命令模式下使用M键将当前单元格转换为Markdown单元格,使用Y键将当前单元格转换为代码单元格。你也可以在菜单栏中选择Cell > Cell Type来切换单元格类型。
执行单元格
要执行一个代码单元格,你可以按Shift + Enter键,这会执行当前单元格并跳到下一个单元格。如果下一个单元格不存在,就会创建一个新的代码单元格。你也可以按Ctrl + Enter键,这会执行当前单元格并保持在当前位置。如果你想执行当前单元格并在下面插入一个新的代码单元格,你可以按Alt + Enter键。
要执行一个Markdown单元格,你也可以按Shift + Enter键或者Ctrl + Enter键,这会渲染当前单元格的文本并跳到下一个单元格或者保持在当前位置。如果你想再次编辑一个已经渲染的Markdown单元格,你可以双击它或者按Enter键进入编辑模式。
缩进和注释
在编写Python代码时,缩进和注释是很重要的。缩进可以让你的代码更加清晰和规范,注释可以让你的代码更加易懂和可维护。jupyter notebook提供了一些快捷键来帮助你进行缩进和注释。
要缩进一行或多行代码,你可以选中它们并按Tab键,这会在每行开头添加四个空格。要取消缩进一行或多行代码,你可以选中它们并按Shift + Tab键,这会删除每行开头的四个空格。
要注释一行或多行代码,你可以选中它们并按Cmd + /键(或者在Linux和Windows上使用Ctrl + /键),这会在每行开头添加一个#符号。要取消注释一行或多行代码,你也可以选中它们并按Cmd + /键(或者在Linux和Windows上使用Ctrl + /键),这会删除每行开头的#符号。
魔法命令
jupyter notebook支持一些特殊的命令,称为魔法命令,它们以%或%%开头,可以让你在单元格中执行一些额外的功能,比如计时、运行其他语言的代码、显示图表等。魔法命令有两种类型:行魔法和单元格魔法。行魔法以%开头,只对当前行有效,单元格魔法以%%开头,对整个单元格有效。
你可以在菜单栏中选择Help > Magic to see a list of all available magic commands. Here are some examples of magic commands:
- %timeit: This line magic can measure the execution time of a single statement, such as a list comprehension or a function call. For example:
%timeit [x**2 for x in range(1000)]
This will output something like:
1000 loops, best of 5: 248 µs per loop
- %%timeit: This cell magic can measure the execution time of the whole cell, such as a for loop or a code block. For example:
%%timeitsum = 0for i in range(1000): sum += i**2
This will output something like:
1000 loops, best of 5: 331 µs per loop
- %matplotlib: This line magic can enable the inline display of matplotlib plots in the notebook. You can also specify a different backend, such as qt or tk, to show the plots in a separate window. For example:
%matplotlib inlineimport matplotlib.pyplot as pltplt.plot([1, 2, 3, 4])plt.ylabel('some numbers')plt.show()
This will output a plot like this:
- %%writefile: This cell magic can write the content of the cell to a file. You need to specify the file name as an argument. For example:
%%writefile hello.pyprint("Hello, world!")
This will create a file named hello.py with the content print(“Hello, world!”).
- %run: This line magic can execute a Python script and load its content to the current namespace. You need to specify the script name as an argument. For example:
%run hello.py
This will execute the hello.py script and output Hello, world!.
- %%bash: This cell magic can run a bash script in the cell. You can use any bash commands in the cell. For example:
%%bashecho "Current date and time:"dateecho "Current directory:"pwdecho "Current user:"whoami
This will output something like:
Current date and time:Sat May 6 10:29:03 CST 2023Current directory:/Users/user/Desktop/jupyter-notebook-tipsCurrent user:user
交互式小部件
jupyter notebook支持一些交互式的小部件,可以让你在单元格中创建一些可视化的控件,比如滑块、按钮、复选框等。这些控件可以和Python代码进行交互,实现一些动态的效果。要使用交互式小部件,你需要导入ipywidgets模块,并使用interact或interactive函数来创建控件。例如:
from ipywidgets import interactimport numpy as npimport matplotlib.pyplot as pltdef f(n): x = np.linspace(0, 10, 100) y = np.sin(n * x) plt.plot(x, y) plt.show()interact(f, n=(1, 10))
这会创建一个滑块,让你调整n的值,从而改变正弦曲线的频率。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQze2Zd8-1683350343137)(null)]
LaTeX公式
jupyter notebook支持使用LaTeX语法来输入和渲染数学公式。LaTeX是一种专业的排版系统,可以让你用简单的符号来表示复杂的数学表达式。要在jupyter notebook中使用LaTeX公式,你需要用两个美元符号$包围公式。例如:
这是一个二次方程:
a x 2 +bx+c=0 ax^2 + bx + c = 0 ax2+bx+c=0
这是一个矩阵:
[ a b c d ] \begin{bmatrix} a & b \\ c & d \end{bmatrix} [acbd]
这是一个积分:
∫ a b f(x)dx \int_{a}^{b} f(x) dx ∫abf(x)dx
这会渲染成:
这是一个二次方程:
a x 2 +bx+c=0 ax^2 + bx + c = 0 ax2+bx+c=0
这是一个矩阵:
[ a b c d ] \begin{bmatrix} a & b \\ c & d \end{bmatrix} [acbd]
这是一个积分:
∫ a b f(x)dx \int_{a}^{b} f(x) dx ∫abf(x)dx
函数联想
在编写Python代码时,有时候你可能不记得某个函数的名称或参数,或者想要查看某个函数的文档。jupyter notebook提供了一些快捷键来帮助你进行函数联想。
-
Tab键:当你在输入一个变量或函数的名称时,你可以按Tab键来自动补全或显示可选的名称。例如,当你输入plt.后按Tab键,就会显示matplotlib.pyplot模块中的所有函数和属性。当你输入plt.p后按Tab键,就会显示以p开头的所有函数和属性,比如plt.plot、plt.pie等。你可以用上下箭头来选择你想要的名称,然后按Enter键或Tab键来补全。
-
Shift + Tab键:当你在输入一个函数的括号时,你可以按Shift + Tab键来显示该函数的签名或文档。例如,当你输入plt.plot(后按Shift + Tab键,就会显示plt.plot函数的参数和简要说明。如果你再次按Shift + Tab键,就会显示更详细的文档。如果你按住Shift键不放,再连续按四次Tab键,就会在一个单独的窗口中显示完整的文档。
-
?符号:当你想要查看一个变量或函数的详细信息时,你可以在它的后面加上一个问号?,然后执行单元格。这会在一个单独的窗口中显示该变量或函数的类型、值、文档等信息。例如,当你执行plt.plot?时,就会显示plt.plot函数的完整文档。如果你想要关闭这个窗口,你可以按Esc键或点击窗口右上角的x按钮。
来源地址:https://blog.csdn.net/weixin_50409347/article/details/130524922
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341