40个IPython的使用技巧整理

简介: IPython 是一个强大的交互式 Python 解释器,它提供了许多增强的功能,使得 Python 编程更加高效和有趣。

IPython 是一个强大的交互式 Python 解释器,它提供了许多增强的功能,使得 Python 编程更加高效和有趣。

以下是一些 IPython 的使用技巧,包括代码示例和解释:


1. 自动补全:

使用 Tab 键可以自动补全变量名、函数名等。

import numpy as np
np.a # Press Tab to autocomplete to np.array

2. 自动缩进:

当你开始一个新代码块时,IPython 会自动缩进。

for i in range(5):
    # IPython automatically indents for you
    print(i)

3. 代码历史:

使用 上下箭头 键可以浏览你的命令历史。 或者使用 %history 查看命令历史


4. 魔术命令:

IPython 提供了一些特殊的命令,称为魔术命令,它们以 % 或 %% 开头。

  • %timeit 用于测量某个代码片段的执行时间。
%timeit [x**2 for x in range(1000)]

%%timeit 是一个单元格魔术命令,用于测量整个单元格的执行时间。

%%timeit
import numpy as np
x = np.arange(1000)
(x**2).sum()

%run 用于运行一个 Python 脚本。

%run my_script.py

5. 变量查看:

使用 %whos 可以查看当前命名空间中的所有变量。

a = 10
b = 20
%whos

6. 清屏:

使用 %clear 可以清除当前的输出。

%clear

7. 帮助系统:

使用 ? 或 %? 可以获取函数或魔术命令的帮助信息。

%?print

8. 使用 %paste 和 %cpaste:

当你从其他地方复制代码时,可以使用这些命令来避免一些常见的粘贴问题。

%paste
# Paste your code here

9. 使用 %%capture 来捕获输出:

当你想要捕获某个单元格的输出,而不是显示它时,可以使用 %%capture。

%%capture captured_output
print("This will not be displayed")

10. 使用 %load 加载文件:

使用 %load 可以快速加载并执行一个 Python 脚本。

%load my_script.py

11. 使用 %edit 编辑变量或函数:

使用 %edit 可以快速打开并编辑当前命名空间中的变量或函数。

%edit my_function

12. 使用 %xmode 控制错误信息的显示:

%xmode 可以控制当发生错误时显示的堆栈跟踪的详细程度。

%xmode minimal

13. 自动换行:

IPython 支持自动换行,当你的代码超出了屏幕宽度时,可以使用 Shift + Enter 来换行并继续输入。


14. 使用 %auto 来自动导入模块:

如果你经常需要导入某些模块,可以使用 %auto 来自动导入它们。

%auto

15. 使用 %bookmark 来保存和加载工作会话:

%bookmark 允许你保存当前的工作会话,并在之后加载它。

%bookmark save my_bookmark
%bookmark load my_bookmark

16. 使用 %matplotlib 来集成图形库:

如果你使用 matplotlib 进行绘图,%matplotlib 魔术命令可以设置 matplotlib 来在 IPython 中显示图形。

%matplotlib inline
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])

17. 使用 %precision 来控制浮点数的显示精度:

%precision 魔术命令可以设置浮点数的显示精度。

%precision 2
a = 3.1415926
print(a)

18. 使用 %alias 来创建命令别名:

%alias 允许你为常用的命令创建别名。

%alias ll ls -l
ll

19. 使用 %config 来配置 IPython:

%config 命令可以用来查看和设置 IPython 的配置选项。

%config IPCompleter.greedy=True

20. 使用 %debug 来进入调试模式:

当代码出错时,使用 %debug 可以进入调试模式,逐行检查代码。

def my_function():
    x = 1 / 0
my_function()  # This will raise an error
%debug

21. 使用 %prun 来分析代码性能:

%prun 魔术命令可以用来运行代码并提供性能分析。

%prun [x**2 for x in range(10000)]

22. 使用 %%writefile 来创建或覆盖文件:

%%writefile 单元格魔术命令可以将单元格的内容写入文件。

%%writefile my_new_file.txt
Hello, this is a new file.

23. 使用 %store 和 %retrieve 来存储和检索变量:

%store 可以用来存储变量,%retrieve 可以用来检索之前存储的变量。

a = 10
%store a
%store -d a  # Delete stored variable
%retrieve a

24. 使用 %conda 来管理 Conda 环境:

如果你使用 Conda 来管理 Python 环境,%conda 魔术命令可以在 IPython 中直接管理它们。

%conda install numpy

25. 使用 %%R 来运行 R 语言代码:

如果你安装了 rpy2,可以使用 %%R 单元格魔术命令来运行 R 语言代码。

%%R
    x <- c(1, 2, 3, 4, 5)
    plot(x, rnorm(5))

IPython 还有许多高级功能和技巧,以下是一些额外的高级使用技巧:


26. 使用 %%HTML 来显示 HTML 内容:

%%HTML 单元格魔术命令允许你直接在 IPython 笔记本中嵌入 HTML 内容。

%%HTML
<h1 style="color:red">Hello, HTML in IPython!</h1>

27. 使用 %%SVG 来显示 SVG 图像:

%%SVG 单元格魔术命令可以用来在 IPython 笔记本中嵌入 SVG 图像。

%%SVG
<!-- Your SVG code here -->

28. 使用 %%latex 来显示 LaTeX 公式:

如果你在 IPython 笔记本中工作,%%latex 单元格魔术命令可以用来渲染 LaTeX 公式。

%%latex
\[
\int_{-\infty}^\infty e^{-x^2} dx = \sqrt{\pi}
\]

29. 使用 %%javascript 来执行 JavaScript 代码:

%%javascript 单元格魔术命令允许你在 IPython 笔记本中执行 JavaScript 代码。

%%javascript
console.log('Hello, JavaScript in IPython!');

30. 使用 %%sql 来执行 SQL 语句:

如果你安装了 IPython 的 sql 魔术命令扩展,%%sql 可以用来执行 SQL 语句。

%load_ext sql
%%sql sqlite:///:memory:
CREATE TABLE test (col1, col2);
INSERT INTO test (col1, col2) VALUES (1, 'text1');
SELECT * FROM test;

31. 使用 %%bash 来执行 Bash 命令:

%%bash 单元格魔术命令允许你在 IPython 笔记本中执行 Bash 命令。

%%bash
ls -l

32. 使用 %%capture 来捕获输出并进行进一步操作:

%%capture 不仅可以捕获输出,还可以将捕获的内容赋值给变量。

%%capture captured
print("This is captured output")
captured_output = captured.stdout
print(captured_output)

33. 使用 %%cython 来编译 Cython 代码:

如果你在进行性能敏感的计算,%%cython 单元格魔术命令可以用来编译 Cython 代码。

%load_ext Cython
%%cython
def example(int n):
    cdef int i
    return sum(i*i for i in range(n))

34. 使用 %%file 来将单元格内容写入文件:

%%file 单元格魔术命令可以将单元格的内容写入一个新文件,如果文件已存在则覆盖。

%%file myfile.py
def hello_world():
    print("Hello, world!")

35. 使用 %%html 来创建 HTML 单元格:

%%html 单元格魔术命令可以用来创建 HTML 单元格,这在 IPython 笔记本中非常有用。

%%html
<div>
  <p>This is some HTML content.</p>
</div>

36. 使用 %%markdown 来创建 Markdown 单元格:

%%markdown 单元格魔术命令可以用来创建 Markdown 单元格,这在 IPython 笔记本中非常有用。

%%markdown
# Header 1
## Header 2
- Bullet 1
- Bullet 2

37. 使用 %%sh 来执行 Shell 命令:

%%sh 单元格魔术命令允许你在 IPython 笔记本中执行 Shell 命令。

%%sh
echo "Hello, shell in IPython!"

38. 使用 %%perl 来执行 Perl 代码:

如果你安装了 IPython 的 perlmagic 扩展,%%perl 可以用来执行 Perl 代码。

%%perl
my $greeting = "Hello, Perl in IPython!";
print $greeting;

39. 使用 %%ruby 来执行 Ruby 代码:

如果你安装了 IPython 的 ruby 魔术命令扩展,%%ruby 可以用来执行 Ruby 代码。

%%ruby
puts "Hello, Ruby in IPython!"

40. 使用 %%python3 或 %%python2 来指定 Python 版本:

如果你需要在 IPython 笔记本中指定 Python 版本,可以使用 %%python3 或 %%python2。

%%python3
    print("This is Python 3")

最后

这些技巧可以帮助你更有效地使用 IPython,无论是在数据分析、科学计算还是日常编程中。随着你使用 IPython 的经验增加,你可能会发现自己对这些工具的依赖也越来越大。记得,IPython 的官方文档和社区论坛是学习更多高级技巧的好地方。

相关文章
|
11月前
|
存储 PyTorch 算法框架/工具
PyTorch推理扩展实战:用Ray Data轻松实现多机多卡并行
单机PyTorch推理难以应对海量数据,内存、GPU利用率、I/O成瓶颈。Ray Data提供轻量方案,仅需微调代码,即可将原有推理逻辑无缝扩展至分布式,支持自动批处理、多机并行、容错与云存储集成,大幅提升吞吐效率,轻松应对百万级图像处理。
708 13
PyTorch推理扩展实战:用Ray Data轻松实现多机多卡并行
|
数据采集 数据可视化 数据挖掘
Python数据分析实战:Pandas处理结构化数据的核心技巧
在数据驱动时代,结构化数据是分析决策的基础。Python的Pandas库凭借其高效的数据结构和丰富的功能,成为处理结构化数据的利器。本文通过真实场景和代码示例,讲解Pandas的核心操作,包括数据加载、清洗、转换、分析与性能优化,帮助你从数据中提取有价值的洞察,提升数据处理效率。
648 3
|
安全 Linux PHP
Web渗透-命令执行漏洞-及常见靶场检测实战
命令执行漏洞(RCE)指应用程序调用系统命令时,用户可控制输入参数,导致恶意命令被拼接执行,从而危害系统安全。常见于PHP的system、exec等函数。攻击者可通过命令连接符在目标系统上执行任意命令,造成数据泄露或服务瘫痪。漏洞成因包括代码层过滤不严、第三方组件缺陷等。可通过参数过滤、最小权限运行等方式防御。本文还介绍了绕过方式、靶场测试及复现过程。
2255 0
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
1397 4
|
人工智能 数据可视化 前端开发
Probly:开源 AI Excel表格工具,交互式生成数据分析结果与可视化图表
Probly 是一款结合电子表格功能与 Python 数据分析能力的 AI 工具,支持在浏览器中运行 Python 代码,提供交互式电子表格、数据可视化和智能分析建议,适合需要强大数据分析功能又希望操作简便的用户。
2065 2
|
监控 安全 Shell
清除阿里云服务器挖矿病毒总结
监控发现`top`命令显示`xmrig`进程占满CPU,确认服务器遭挖矿病毒感染。通过`thistory`追溯到病毒执行步骤,包括下载恶意脚本、设置定时任务等。处理方案包括:清理异常定时任务并修复权限;查找并删除挖矿相关文件;识别并终止可疑`sh`进程;加强SSH安全,如修改端口、清除密钥、限制IP访问等,以彻底清除病毒并加固系统安全。
3417 2
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
前端开发 数据库 Python
Django入门全攻略:从零搭建你的第一个Web项目
Django入门全攻略:从零搭建你的第一个Web项目
|
Java 应用服务中间件 API
从0到1学会Jetty内存马注入
最近在学习geoserver的CVE-2024-36401注入内存马的时候,发现需要注入jetty类型的内存马,这是一个不同于tomcat的轻量级web容器。具体来说,Jetty 是一个开源的servlet容器,它为基于Java的web容器,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供网络和web连接。