最强Python数据分析工具!Jupyter Notebook,竟还有这个功能!

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

ff6ee442a157e945eeea038d55a45fb3.png

题图:凡人修仙传

Jupyter Notebook应该很多同学都或多或少有所了解,但是,很多同学 还停留在Python、数据分析、交互式开发。

其实,除了这些之外,Jupyter Notebook还可以完成很多你意想不到的事情。

例如,Python工具包开发、创建幻灯片、创建电子书、写博客、写报告、数据看板、REST API、网页应用等。

以网页应用为例,提起开发一个网页应用,很多同学第一印象都会想到需要前端、后端、服务部署等繁琐的步骤,需要具备html、JavaScript、Java或者Python、Django知识。

其实,通过Jupyter Notebook就可以开发一款可部署的网页应用。

下面,就以一个图像处理的网页应用为例给大家演示一下。

准备工作

在正式的开发之前,先把开发环境配置、Python工具包这些基本的准备工作做一下。

环境配置

创建一个虚拟环境,单独的用于这个网页应用,虚拟环境的好处就可以实现不同应用之间的环境隔离,避免不同项目/应用依赖不同版本的工具包导致冲突。

virtualenv sketchenv
source sketchenv/bin/activate

这里的sketchenv是虚拟环境 的名称,你也可以起其他名称。

安装工具包

下面,就是按照开发网页应用需要的一些工具包:

mljar-mercury
opencv-python-headless
pillow
matplotlib

其中,mercury是一款能够将jupyter notebook转换成网页 应用的框架,其余的几款都是用于图像处理的工具包。

正式开始

下面,就正式开始开发工具。

首先,打开一个Jupyter Notebook的窗口:

jupyter notebook

然后,导入一些需要用到的Python工具包并对图像进行一下初始设置:

import os
import cv2
from PIL import Image
from matplotlib import pyplot as plt

import matplotlib as mpl
mpl.rcParams['figure.figsize'] = (12,12)
mpl.rcParams['axes.grid'] = False

在Jupyter Notebook打开一个新的单元格,输出以下代码,谨记,需要新打开一个,不能和其他单元格的代码放在一起:

image_path = "/home/jackpop/Downloads/house.jpg"
output_dir = "output_images"

image_path是一个要处理图像的路径,output_dir是目录名,用于保存处理好的新图像。

在下一个单元中,将定义一个显示图像的函数:

def imshow(image, title=None, fname=None):
    if len(image.shape) > 3:
        image = tf.squeeze(image, axis=0)

    plt.imshow(image)
    plt.axis('off')
    if title:
        plt.title(title)
    if fname:
        plt.savefig(fname)

然后,载入图像并显示:

img = cv2.imread(image_path)
RGB_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
imshow(RGB_img)

你会看到下图:

92d04dd1e3c0ada2dfc30f7f566e01a7.png

现在开始对图像进行处理,生成艺术素描图像:

# 图像转化
grayed = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
inverted = cv2.bitwise_not(grayed)
blurred = cv2.GaussianBlur(inverted, (19, 19), sigmaX=0, sigmaY=0)
def blend(x, y):
    return cv2.divide(x, 255 - y, scale=256)
final_result = blend(grayed, blurred)

# 保存图像
_ = cv2.imwrite(os.path.join(output_dir, "sketch_photo.jpg"), final_result)

# 显示图像
RGB_img = cv2.cvtColor(final_result, cv2.COLOR_BGR2RGB)
imshow(RGB_img)

经过处理之后,你会看到如下图像:

f5320baf15e1048f6ad7c4f9f50ad20a.png

到这里,核心的代码都已经完成了,已经有了Jupyter Notebook代码,那么,该怎么编程网页应用呢?

这就用到前面安装的工具包mercury,前面 已经介绍,它可以将Jupyter Notebook转化成网页应用。

首先,执行如下命令:

mercury watch sketch_app.ipynb

在浏览器中打开http://127.0.0.1:8000/链接,会看到一个卡片,如下所示:

327ee7083e5aa24b4c2796b1104ff84c.png

请点击卡片,你会看到它的警告信息,告诉你缺少YAML头。

0a16e4d2fde703cca92a3b10ca4c909d.png

这就涉及到mercury中的一个比较重要的东西,配置信息,它是一种yaml格式的配置信息 ,主要包含标题、配置参数等内容。

下面,就在Jupyter Notebook开头创建一个RAW格式的单元,输入相关的yaml配置信息:

---
title: Convert Photo to Sketch 🖌️
description: Create sketch from uploaded a photo
show-code: False
params:
    image_path:
        input: file
        label: Please upload a photo
    output_dir:
        output: dir
---

YAML配置包含如下信息:

  • title:应用程序的标题

  • description:描述应用程序的文本

  • show-code:是否显示或隐藏Notebook代码

  • params:Jupyter Notebook代码用到的参数以及相关组件,这里面用到2个组件:

  • image_path:文件小组件,变量image_path将被替换成上传文件的路径

  • output_dir:目录小组件,对应代码中输出目录的变量

然后,再打开http://127.0.0.1:8000/,就可以看到,这个网页应用就可以用了,可以选择图片、上传图片并处理图片。

42631674945c27f94b2636e58d4277b8.gif

如果你想持久化部署,可以通过docker等工具进行打包部署到服务器或者云上,然后随时就都可以用了。

这里只是一个图像处理工具的例子,除此之外,我们还可以通过调用api实现翻译工具、数据看板、pdf编辑等工具,都变得非常简单。

推荐阅读:
入门: 最全的零基础学Python的问题  | 零基础学了8个月的Python  | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 |   从万众期待到口碑扑街!唐探3令人失望  | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏  | 九宫格  | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!|  再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|

年度爆款文案

点阅读原文,看B站我的20个视频!

科研技能:数据分析工具人工智能分享 你只需要告诉 ChatGPT:“我有一组实验数据,包括温度和反应速度,能帮我写个 R 程序分析这两者的关系吗?: 比如,实验数据量太大,你需要用机器学习分类。我会先用 Python 写一个数据预处理的代码,然后结合 OpenAI API,快速生成一个决策树模型来分类,还能自动调整参数,找到最优解。现在的 AI 工具简直是科研人员的福音,尤其是处理复杂数据或者写论文的时候,用得好就跟开挂一样。:如果你的数据量不大,还是喜欢用 Excel,那 AI 插件可以帮你自动分析数据。本文由博客一文多发平台。 阅读详情

相关推荐

最强Python可视化神器,没有之一

数据分析离不开数据可视化,我们最常用的就是pandas,matplotlib,pyecharts当然还有Tableau,看到一篇文章介绍plotly制图后我也跃跃欲试,查看了相关资料开始尝试用它制图。 1. Plotly Plotly 是一款用来数据分析和可视化的在线平台,功能非常强大,可以在线绘制很多图形比如条形图、散点图、饼图、直方图等等。而且还是支持在线编辑,以及多种语言python、javascript、matlab、R等许多API。它在python中使用也很简单,直接用pip install p

m0_59236216的博客 1050

Python数据处理035:结构化数据分析工具Pandas之Pandas概览

Python结构化数据分析工具Pandas之Pandas概览

若北辰 5620

别再被SystemExit: 2搞懵了!Python argparse在Jupyter Notebook里的正确打开方式

本文详细解析了在Jupyter Notebook中使用Python argparse模块时常见的SystemExit: 2报错问题,揭示了其根源在于交互式环境与命令行参数解析的冲突。文章提供了四种实用解决方案,包括空参数列表法、模拟参数法、系统变量修改法和参数接收法,帮助开发者高效调试并优化代码。通过深入理解argparse的工作原理和设计哲学,读者可以构建更健壮的参数处理系统。

weixin_30883311的博客 409

一文弄懂Jupyter的配置与使用(呕心沥血版)

本文从Jupyter的安装、配置、界面讲解、主题设置、基础使用、实战代码等角度下手,详细的阐述了相关的流程和知识点,如果你是小白,看完就恍然大明白了,收藏吃灰吧!

欢迎自九陌而来的你做客九陌斋! 6万+

[转]Python共享单车数据的OD识别与社区发现(TransBigData+igraph)

这个案例的Jupyter notebook:点击这里. 对于共享单车的出行,每一次出行都可以被看作是一个从起点行动到终点的出行过程。当我们把起点和终点视为节点,把它们之间的出行视为边时,就可以构建一个网络。通过分析这个网络,我们可以得到关于城市的空间结构、共享单车需求的宏观出行特征等信息。 社区发现,也可以叫图分割,帮助我们揭示网络中节点之间的隐藏关系。在这个例子中,我们将介绍如何将TransBigData整合到共享单车数据的社区发现分析过程中。 import pandas as pd impor.

May the Force be with you 2277

Python绘图】matplotlib:先搞明白plt. /ax./ fig再画

原文链接:https://zhuanlan.zhihu.com/p/93423829 我这个傻子的matplotlib学习过程很神奇: 刚开始,找几个教程,呕吼,简单,plt.*** 一顿写。画完了。遇到坐标啊之类的细节不会调? 打开谷哥,要啥搜啥。 我最开始觉得这样蛮好的,这是一个很容易学的lib嘛。 然后问题出现了,matplotlib最烦人的地方就是,同样一个目标,你可以有N种不同...

JianJuly的博客 7569

挑战Jupyter Notebook数据分析神器

作者:Anthony Agnone 机器之心编译大家好,我是一行今天分享的文章,是足以挑战jupyter notebook数据分析地位的神器----Deepnote。用过的都说好背...

一行玩python 1168

抓取摩拜单车API数据,并可视化分析

抓取摩拜单车API数据,并可视化分析 纵聊天下 百家号|04-19 15:16 关注 警告:此篇文章仅作为学习研究参考用途,请不要用于非法目的。 摩拜是最早进入成都的共享单车,每天我从地铁站下来的时候,在APP中能看到很多单车,但走到那里的时候,才发现车并不在那里。有些车不知道藏到了哪里;有些车或许是在高楼的后面,由于有GPS的误差而找不到了;有些车被放到了小区里面,一墙之...

weixin_34255055的博客 2717

最强Python数据分析工具Jupyter Notebook还有这个功能

Jupyter Notebook应该很多同学都或多或少有所了解,但是,很多同学 还停留在Python数据分析、交互式开发。其实,除了这些之外,Jupyter Notebook还可以完成很多你意想不到的事情。例如,Python工具包开发、创建幻灯片、创建电子书、写博客、写报告、数据看板、REST API、网页应用等。以网页应用为例,提起开发一个网页应用,很多同学第一印象都会想到需要前端、后端、服务部署等繁琐的步骤,需要具备html、JavaScript、Java或者Python、Django知识。其实,通过

Python数据挖掘 587

jupyternotebook 报告_Jupyter Notebook最强指南,没有之一

(文末有福利)Python语言是一种强大而简洁的编程语言。据IEEE Spectrum消息,Python在2020年继续蝉联最受欢迎的编程语言第一名。对于刚接触Python的新手来说,配置一个容易上手又适合自己的开发环境无疑是成功掌握这门编程语言的第一步。对于Python IDE的比较和推荐,各路高手也说法不同,其中被推荐频率最高的当属Pycharm、VS Code和Jupyter No...

weixin_34380085的博客 724

Jupyter Notebook介绍、安装和三大技巧!

1.什么是jupyter notebookjupyter notebook是一个基于网页的交互式笔记本,支持多种编程语言。之前被称为 ipython notebook。 它的本质是一个web应用程序,便于演示和共享程序文档。支持实时编码、数学方程、可视化和markdown。可运行40+种编程语言。 主要用途包括数据清理和转换、数值模拟、统计建模、机器学习等等。 2.如何使用jupyter notebook 1.如果你安装了Anaconda,直接打开jupyter prompt。然后输...

qq_36807888的博客 1334

蟒周刊-390-VSCode 支持直接 Jupyter Notebook 编辑了

VSCode 支持直接 Jupyter Notebook 编辑了 原文: PyCoder's Weekly - Issue #390 191006 Zoom.Quiet(大妈) 用时 42 分钟 完成快译 191006 Zoom.Quiet(大妈) 用时 17 分钟 完成格式转抄. ------ CPython 3.8.0 发布 PYTHON.ORG Assig...

zoomquiet的博客 713

Jupyter Notebook又一利器Visual Python,拯救不想写代码!

分享一个Jupyter Notebook插件visualpython:通过界面拖拽生成Python代码,以最少的编码技能即可把玩爬虫、数据分析、AI等;面向非专业程序员,减少学习编码技能的时间;轻松保存和重用代码。1、安装在终端操作,输入以下命令行,安装visualpythonpipinstallvisualpython2、激活在终端操作,输入以下命令行,激活visualpythonvisua...

cainiao_python的博客 299

Python相关】jupyter平台最强插件没有之一

1 简介jupyter lab是我最喜欢的编辑器,在过往的文章中也给大家介绍过很多相关资源和实用插件,但本文要给大家介绍的jupyter lab插件elyra,绝对是我使用过的最强大的j...

fengdu78的博客 668

Jupyter Notebook 安装与排错指南:从环境配置到数据分析实战

Python 数据分析机器学习领域,交互式开发环境往往直接影响探索效率。Jupyter Notebook 作为一款基于 Web 的交互式计算前端,通过内核机制执行代码并在单元格中呈现结果,将说明、代码、输出与图表整合于同一文档,为数据清洗、统计分析和可视化提供了可复现的过程记录载体。理解其端口、token 与内核的底层关系,是正确安装与启动的前提。针对不同用户,pip、Miniconda 与 Anaconda 三种安装路径各有适用场景,合理选择虚拟环境并配置镜像源可避免环境混乱导致的命令缺失或内核启动

weixin_34087307的博客 365

最常用的python开发工具

推荐5个非常适合Python小白的开发工具:1、Python TutorPython Tutor是由Philip Guo开发的一个免费教育工具,可帮助开发者攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。

nnn0245的博客 1987

Jupyter Notebook又一懒人神器,拖拽生成Python代码!

分享一个Jupyter Notebook插件visualpython:通过界面拖拽生成Python代码,以最少的编码技能即可把玩爬虫、数据分析、AI等;面向非专业程序员,减少学习编码技能的时间;轻松保存和重用代码。1、安装在终端操作,输入以下命令行,安装visualpythonpipinstallvisualpython2、激活在终端操作,输入以下命令行,激活visu...

cainiao_python的博客 819

VS Code 连接远程服务器运行 Jupyter Notebook

作者:张生荣出处:zhangshengrong.com工欲善其事,必先利其器,开发工具这个东西觉得折腾下还是有好处的。但常常感觉专门抽出时间搞这个浪费时间,更常见的现象是已经明显感觉到...

小詹学python的博客 7131
上一篇: 菜鸟必备!免费又好用!吴恩达机器学习新课程又来了!
下一篇: 毕业季!清北毕业生都去哪了?
菜鸟学Python
博客等级 码龄9年 7562粉丝 571原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值