15个节省时间的Jupyter技巧

网站建设4年前发布
51 0 0

作为数据科学家,从加载数据到创建和部署模型,我们几乎每天都在使用Jupyter notebook。,20230306151846e35f4ef54846ca429ed4371c426871cd1ad9b7488,Jupyter Notebooks使用非常简单并且对于任何面向python的任务都可以非常方便的使用。只要它的内核处于活动状态,就可以用数据子集运行和测试脚本,而不用每次重启程序,这样可以加快我们开发和测试的速度。,但是因为它太简单了,所以我们经常会犯一些错误,浪费我们的时间和计算成本。在这篇文章中,我们将讨论一些可以节省时间,降低计算成本的技巧。,在Jupyter notebook中,“魔法命令”是特殊的命令,不是Python语言的一部分,但可以使您的生活更轻松。这些命令前面有%符号。,魔法命令很有用,可以直接嵌入到python代码中,并解决常见问题,例如列出当前目录中的所有文件或更改当前工作目录。,下面是一些常见的魔术命令:,我们可以运行%lsmagic来查看所有magic命令的列表。,20230306151846a7050117776379e8fb871011f1f6cfa2aa836e808,要获得有关特定魔术命令的更多信息,可以使用?操作符,例如%run?。,可以使用魔术命令来做一些有趣的事情。例如,从py文件中执行python代码,或从ipynb文件中执行jupyter notebook。,%run将执行jupyter notebook并显示输出,这与导入python模块不同。,我们可以运行two-histogram notebook并得到如下输出:,20230306152206571433f03454f86ccf1542d07657b0d8dff68e567,通过高亮显示方法并按Shift + Tab键,可以轻松查看该方法的文档。它将显示编写函数时编写的文档字符串。你也可以通过点击右上角的+按钮来打开模态框。,还可以通过突出显示每个magic命令并按Shift + Tab键来获得有关每个magic命令的更多信息。,2023030615220883ae4d5405e0099b9aa0843648eff57b919cd4869,如果你需要重命名写在几个地方的变量,或者在编辑代码时,你希望你有多个光标。,在Jupyter notebooks中,可以使用多个光标同时编辑文本。如果你想一次对多行文本进行相同的更改,这可能很有用。,要在Jupyter notebook中使用多个游标,可以按住Alt键并单击所需的位置。这将在每个点击的位置创建一个游标。然后你可以像往常一样进行编辑,更改将同时应用于所有位置。,Windows:按住alt +左键并拖动光标。Mac:按住option键+左键拖动光标。,你也可以使用Shift + Alt +上/下箭头键组合来选择多行文本,并在每一行的开头创建一个光标。,2023030615184727d188683db56176ad9785c228e5459dcd1103598,记住,使用多个游标可能会产生问题,所以最好在使用这个功能之前保存好你的代码,以防你做了任何意想不到的更改。,可以用外部python脚本替换单元格的内容。你可以使用计算机上的任何python文件,也可以使用URL作为源。,在下一个单元格中可以使用:,Jupyter notebook中使用!命令前的前缀可以运行操作系统的命令。例如,要列出当前目录下的文件,可以使用ls命令:,你也可以通过在命令后面添加参数来传递参数。例如,要列出特定目录下的文件,可以使用-l选项以长格式显示文件,并将目录路径指定为参数:,你也可以将命令的输赋值给一个变量,并在代码中使用它。例如:,上面代码会把当前目录中的文件列表分配给files变量,并打印出来。,你可以使用这种技术在Jupyter notebook中运行任何shell命令,只要该命令在运行notebook的系统中可用。,当你的模型完成训练或任何任务时,得到一个通知总是很有帮助的。,在windows 10中,我们可以使用win10toast模块设置它。,然后使用这段代码,我们在程序完成执行时为我们进行提示。,Mac和Linux可以使用os模块,使用afplay命令(在macOS上)或aplay命令(在Linux上)播放声音。,可以将/path/to/sound.mp3替换为要播放的声音文件的路径。或者是afplay或aplay命令支持的任何音频文件,如MP3、WAV或AIFF。,只有在运行Jupyter notebook的系统上有afplay或aplay命令时,此方法才有效。,在Mac中,还可以使用内置命令say,在程序完成时说一些话。,要在Jupyter notebook中测量单元格的执行时间,可以使用%timeit魔法命令。此命令将执行单个语句并返执行时间。下面是如何使用%timeit的例子:,这将计算sum函数的执行时间,并返回执行该函数所需的平均时间。,2023030615184832f05ec109aa9958899626466b73848033b82e622,还可以使用%%timeit来测量整个单元格的执行时间:,2023030615184857c75e798914b08f647752d68ae5058a72e885585,可以看到上面的代码与我们使用使用Python中的time模块的结果类似,20230306151849349fbe97594fa3a4fa4487a4b7c5b8b2a0f003302,注意:这些方法只会测量单元格中代码的执行时间。如果计算单元依赖于其他计算单元或外部资源,则执行时间将不包括执行这些依赖项所需的时间。,在Jupyter notebook中,%store魔法命令可以在notebook之间传递变量。,下面是一个使用它的例子:,在另外一个notebook中可以用下面命令获得变量的值,%store魔法命令有以下几个操作,你也可以使用一个%store命令存储多个值,如,%store命令仅在相同的Jupyter会话中有效。,%store命令的值在内核重启后也是可以访问的,看看下面这个例子。,2023030615220814d13e0749ce977e8e9925f2400308c4aac457383,学习键盘快捷键将节省你大量的时间。我们可以在顶部菜单下:帮助>键盘快捷键检查它们,或在命令模式下按H键来查看。以下是Jupyter notebook中一些常用的键盘快捷键列表:,选择多个单元格:,还可以使用%shortcuts魔术命令查看当前单元格输出区域的键盘快捷键列表:,这将显示所有快捷键及其相应操作的列表。,当你从Jupyter notebook创建报告时,看到不必要的内存代码或对象id是很烦人的。要将这些不必要的输出隐藏在起来可以使用 分号 ;,看看下面代码:,20230306151851e76f30659cc23490131398b65025e338a7a75d631,如果想屏蔽matplotlib的输出,看看下面代码,注意后面的分号:,202303061518518479e05020397bdcf8310632dd1235f75eefb0419,如果你正在处理大量的大型数据集,并且numpy的速度不够快,那么你可以直接在python代码中直接编写一些c或fortran代码。,如果你想开始用c编写函数,那么你将需要cython库。,加载和使用:,要编写fortran函数,则需要另一个库fortrain-magic。,代码如下:,默认情况下,panda的dataframe只能显示有限数量的行和列。有几种方法可以扩展Jupyter Notebook中pandas DataFrame中显示的行和列的数量。,方法1:使用pd.options.display.max_rows和pd.options.display.max_columns选项。,例如要显示最多100行50列,可以使用以下代码:,方法2:使用pd.set_option函数设置这些选项。例如:,或者可以使用head和tail方法来显示DataFrame的前几行或后几行。例如:,方法3:使用IPython中的IPython.display模块控制显示。例如:,这将显示100行50列的DataFrame。,当你执行完一个单元格时,你意识到忘记给一个变量赋值,那怎么办呢?,我们在jupyter notebook中执行单元格时,它将分配一个行号为ln:,20230306152208e51da93927360a1ccf6191dc831c8ce262f7df192,当单元格完成执行时,我们会得到一个输出并且可以通过传递执行编号作为索引来访问它,2023030615185284bc93e0997dfe62cbd0446ed23fb3330bdfad977,Out是一个python字典,存储单元格的所有输出。我们可以使用编号作为索引来访问输出。,当完成jupyter的测试我们可能会想将jupyter单元中内容导出到python文件中。最简单的办法是创建一个py文件并复制粘贴代码,但这很明显不是最好的方法。,%%writefile是一个Jupyter Notebook魔法命令,可以将单元格的内容保存为Python文件。例如在单元格中有以下代码:,你可以运行单元格后将在Jupyter Notebook所在的目录中创建一个名为example.py的文件,文件内容就是单元格内的python代码,%pycat是另外一个Jupyter Notebook魔法命令,它在Notebook的单元格中显示Python文件的内容。如果在单元格中有以下代码:,它将在单元格的输出中显示example.py文件的内容。这对于快速查看Python文件的内容非常有用。,以上就是我们总结的一些技巧,希望对你有所帮助。,

© 版权声明

相关文章