专业编程基础技术教程

网站首页 > 基础教程 正文

Python10大魔术命令,让你的生产力提高至少1倍

ccvgpt 2024-11-01 11:33:11 基础教程 10 ℃

python中的魔术命令到底是什么?

Python10大魔术命令,让你的生产力提高至少1倍

魔术命令是对常规python代码的增强,这些命令由IPython内核提供。

这些魔术命令通常以“ %”字符作为前缀

Python的魔术命令基本上是为解决我们面临的常见问题而添加的,同时也为你的代码提供了一些快捷方式。

有2种魔术命令:%前缀和%%前缀

%前缀表示该命令在一行代码上运行,而%%前缀允许该命令在整个单元格上运行。

以下是在jupyter Notebook中执行的魔术命令及其实现的示例。

运行外部文件

当我们尝试在jupyter Notebook中运行一些代码片段时,我们希望运行位于某个目录中的外部代码文件。

%run允许你从jupyter Notebook运行任何外部python文件

上面的文件myCode.py包含一个输出上述语句的简单脚本。

如果我们指定文件名(包括%run命令的路径),它将执行该文件。

注意:%run还允许执行外部jupyter Notebook。

代码执行时间

有没有想过一个单元需要多少时间才能运行结束?

使用time 魔术命令可以跟踪单元的总体运行情况。

由于我们将处理整个单元格,因此将%%作为time关键字之前的前缀。

上面的单元格包含一个带随机计算的for循环。%% time用于获取运行for循环所需的执行时间。

复制内容到外部文件

大多数时候,需要直接从jupyter Notebook中将内容添加到python脚本或文本文件中。

你无需复制所有内容并创建新文件,而可以通过在代码之前添加writefile命令直接导出单元格内容。

请注意命令前的%%,表示将导出单元格的全部内容。

显示外部文件的内容

通常你会需要将几行代码从外部文件复制到你的代码中,%pycat允许你显示任何目录中任何文件的内容,而无需花费很长时间来获取文件并打开文件进行复制。

它显示外部文件的所有内容作为其输出。可以将其视为%writefile的逆向应用

列出所有变量

这个魔术命令显示整个笔记本中使用的所有变量。

以下是3个变量:2个字符串和1个整数。如果我们运行%who,它将列出我们定义的所有3个变量。

a = "hello"
b = "Good Morning"
c = 1

上面的代码显示所有变量,而与它们的数据类型无关。

为了显示特定的数据类型变量,我们需要在magic命令之后传递数据类型。上面的代码显示了所有输出为字符串的数据类型变量。

在jupyter Notebook共享变量

这个魔术命令使你可以在不同的jupyter Notebook之间共享任何变量。

要检索变量,需要传递带有'-r'参数的相同命令。

例如第一个Notebook:

检索此数据所需的代码写在另一个Notebook中:

这可能是在不同Notebook之间共享任何数据类型的数据的最简单方法。

执行HTML脚本

%% html允许我们在单元格中编写html代码。

以下代码包含一个用html创建的简单表。

%%html
<html>
<body>
<table>
        <tr> 
            <th>Name</th> 
            <th>Country</th> 
            <th>Age</th> 
        </tr> 
        <tr> 
            <td>Sid</td> 
            <td>India</td> 
            <td>22</td> 
        </tr>
        <tr> 
            <td>Dave</td> 
            <td>UK</td> 
            <td>28</td> 
        </tr>
</table>
</body>
</html>

你可以使用类似于HTML 魔术命令的%% js magic命令在单元格中运行Javascript代码。

显示Matplotlib图

%matplotlib内联魔术命令是最流行的命令。此命令允许Jupyter Notebook在笔记本中显示matplotlib图。此命令激活对jupyter Notebook的matplotlib交互式支持。

import random 
import matplotlib.pyplot as plt 
%matplotlib inline

创建两个随机列表以绘制图形

a = []
b = []
for i in range(10):
    a.append(random.randint(0,10))
    b.append(random.randint(0,10)) 

绘制数据的散点图

plt.scatter(a,b)

%matplotlib内联魔术命令可以可视化jupyter Notebook中的图形。

设置环境变量

该魔术命令可以做三件事:列出所有环境变量,获取特定环境变量的值并为变量设置值。

不带参的%env将列出所有环境变量。

具有单个参数的%env将返回指定参数的值

'%env变量值'将设置指定变量名的值

对象详细信息

%pinfo提供了有关随其一起传递的对象的详细信息。

在下面的代码段中,我传递了一个简单的字符串'a'以及%pinfo以获取有关它的详细信息。

a = "The World Makes Sense!"
%pinfo a

从上面的输出中,%pinfo输出有关字符串对象的所有信息。

使用' %lsmagic '命令找到所有magic命令列表

%lsmagic

Python10大魔术命令,在Jupyter中肯定会让你事半功倍。

更多机器学习精彩内容请关注:程序员学数学。

Tags:

最近发表
标签列表