IPython库及其显示工具介绍

举报
黄生 发表于 2025/04/03 14:51:13 2025/04/03
【摘要】 IPython 是一个功能强大的 交互式 Python 解释器,比标准 Python 解释器提供了更丰富的功能(如代码自动补全、内联绘图、魔法命令等)。它也是 Jupyter Notebook 的核心组件之一。IPython.display 模块是 IPython 提供的显示工具,专门用于在交互式环境中(如 Jupyter Notebook/IPython shell)渲染富媒体内容。它的常...

IPython 是一个功能强大的 交互式 Python 解释器,比标准 Python 解释器提供了更丰富的功能(如代码自动补全、内联绘图、魔法命令等)。它也是 Jupyter Notebook 的核心组件之一。

IPython.display 模块是 IPython 提供的显示工具,专门用于在交互式环境中(如 Jupyter Notebook/IPython shell)渲染富媒体内容。它的常用功能包括:

  1. clear_output()
    • 清除当前单元格的输出(常用于动态更新内容)。

  2. Image()
    • 直接显示图片(支持文件路径、二进制数据或 URL)。

  3. display()
    • 通用显示函数,可渲染多种对象(如 Pandas 表格、Matplotlib 图表等)。

  4. HTML()
    • 渲染 HTML 代码(用于嵌入网页元素或自定义样式)。

使用例子一(Jupyter Notebook 示例)

from IPython.display import display, Image, HTML

# 显示图片
display(Image(filename="cat.png"))

# 动态更新输出
import time
for i in range(5):
    clear_output(wait=True)  # 清除旧输出
    print(f"Progress: {i+1}/5")
    time.sleep(1)

# 渲染 HTML
display(HTML("<h1 style='color:red'>Hello IPython!</h1>"))

使用例子二(Jupyter Notebook 示例)

video_name = "./data/v_TaiChi_g01_c01.avi"
from IPython.display import clear_output, Image, display, HTML
import cv2
import time

def arrayShow(img):
    _,ret = cv2.imencode('.jpg', img) 
    return Image(data=ret) 

cap = cv2.VideoCapture(video_name)

while True:
    try:
        clear_output(wait=True)
        ret, frame = cap.read()
        if ret:
            tmp = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
            img = arrayShow(frame)
            display(img)
            time.sleep(0.05)
        else:
            break
    except KeyboardInterrupt:
        cap.release()
cap.release()

与标准 Python 的区别

标准 Python REPL:仅支持纯文本输出。
IPython/Jupyter:支持富媒体(图片、视频、交互式图表等),适合数据分析和可视化。

当你用 Jupyter Notebook 或类似工具,IPython.display 是控制输出的重要工具。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。