-
命令历史记录:
# 通过上下箭头切换历史命令 In [1]: x = 10 In [2]: y = 20 # 使用上箭头回到上一个命令 In [3]: x Out[3]: 10
-
内省:
In [4]: x? Type: int String form: 10 Docstring: int(x=0) -> integer
-
魔术命令:
In [5]: %timeit list_ = [x for x in range(10000)] 387 µs ± 16.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
-
Tab 键自动补全:
In [6]: s = "Hello, World!" # 输入 s. 然后按下 Tab 键 In [7]: s.capitalize() Out[7]: 'Hello, world!'
-
快捷键:
Ctrl-P 或上箭头键 后向搜索命令历史中以当前输入的文本开头的命令 Ctrl-N 或下箭头键 前向搜索命令历史中以当前输入的文本开头的命令 Ctrl-R 按行读取的反向历史搜索(部分匹配) Ctrl-Shift-v 从剪贴板粘贴文本 Ctrl-C 中止当前正在执行的代码 Ctrl-A 将光标移动到行首 Ctrl-E 将光标移动到行尾 Ctrl-K 删除从光标开始至行尾的文本 Ctrl-U 清除当前行的所有文本译注12 Ctrl-F 将光标向前移动一个字符 Ctrl-b 将光标向后移动一个字符
-
图形化输出:
In [8]: import matplotlib.pyplot as plt In [9]: import numpy as np In [10]: x = np.linspace(0, 2*np.pi, 100) In [11]: y = np.sin(x) In [12]: plt.plot(x, y) Out[12]: [<matplotlib.lines.Line2D at 0x7f186e99d3d0>] # 这会在命令行中显示一个正弦波形图
-
包管理:
In [13]: !pip install numpy
-
Jupyter Notebook 集成:
Jupyter Notebook 是一个独立的环境,需要在 Jupyter Notebook 中展示。 -
自定义魔术命令:
# 创建一个名为myprint的自定义魔术命令,用于打印字符串两次 In [1]: from IPython.core.magic import register_line_cell_magic ...: @register_line_cell_magic ...: def myprint(line, cell=None): ...: if cell is None: ...: print(line) ...: else: ...: print(line) ...: print(cell)
-
交互式调试:
In [2]: def buggy_function(x): ...: return x/0 ...: In [3]: buggy_function(5) --------------------------------------------------------------------------- ZeroDivisionError Traceback (most recent call last) <ipython-input-3-2f3cb4c74a93> in <module> ----> 1 buggy_function(5) ZeroDivisionError: division by zero In [4]: %debug > <ipython-input-3-80c21504cd58>(2)buggy_function() 1 def buggy_function(x): ----> 2 return x/0 [下面是调试器提示符,可以使用标准的 Python 调试命令进行交互]
-
Shell 命令:
In [5]: !ls notebooks/ data/ images/
-
自定义配置:
通过编辑 IPython 的配置文件来修改默认设置。 -
CPU/GPU 执行时间比较:
In [6]: import numpy as np In [7]: %time sum(np.arange(10000)) CPU times: user 115 µs, sys: 0 ns, total: 115 µs Wall time: 120 µs Out[7]: 49995000
-
集成 shell 命令输出:
In [8]: files = !ls In [9]: print(files) ['notebooks/', 'data/', 'images/']
Ipython实用技巧整理
于 2024-07-17 18:12:35 首次发布