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

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)

你会看到下图:

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

# 图像转化

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)

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

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

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

首先,执行如下命令:

mercury watch sketch_app.ipynb

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

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

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

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

---

title: Convert Photo to Sketch
域名
上一篇:双4a手机的卓越表现与绝佳用户体验(领先市场的性能与创新,重新定义智能手机)
下一篇:Node.js 4.0 发布的主要目标是为io.js 用户提供一个简单的升级途径,所以这次并没有太多重要的 API 变更。下面的内容让我们来看看如何轻松的在 ubuntu server 上安装、配置 Node.js。一、基础系统安装Node 在 Linux,Macintosh,Solaris 这几个系统上都可以完美的运行,linux 的发行版本当中使用 Ubuntu 相当适合。这也是我们为什么要尝试在ubuntu 15.04 上安装 Node.js,当然了在 14.04 上也可以使用相同的步骤安装。1.系统资源Node.js 所需的基本的系统资源取决于你的架构需要。本教程我们会在一台 1GB 内存、 1GHz 处理器和 10GB 磁盘空间的服务器上进行,最小安装即可,不需要安装 Web 服务器或数据库服务器。2.系统更新在我们安装 Node.js 之前,推荐你将系统更新到最新的补丁和升级包,所以请登录到系统中使用超级用户运行如下命令:复制代码代码如下:# apt-get update    3.安装依赖Node.js 仅需要你的服务器上有一些基本系统和软件功能,比如 make、gcc和wget 之类的。假如你还没有安装它们,运行如下命令安装:复制代码代码如下:# apt-get install python gcc make g++ wget二、下载最新版的Node JS v4.0.0复制其中的最新的源代码的链接,然后用wget 下载,命令如下:复制代码代码如下:# wget https://nodejs.org/download/rc/v4.0.0-rc.1/node-v4.0.0-rc.1.tar.gz下载完成后使用命令tar 解压缩: 复制代码代码如下:# tar -zxvf node-v4.0.0-rc.1.tar.gz三、安装 Node JS v4.0.0现在可以开始使用下载好的源代码编译 Node.js。在开始编译前,你需要在 ubuntu server 上切换到源代码解压缩后的目录,运行configure 脚本来配置源代码:复制代码代码如下:root@ubuntu-15:~/node-v4.0.0-rc.1# ./configure现在运行命令 make install 编译安装 Node.js:复制代码代码如下:root@ubuntu-15:~/node-v4.0.0-rc.1# make installmake 命令会花费几分钟完成编译,安静的等待一会。四、验证 Node.js 安装一旦编译任务完成,我们就可以开始验证安装工作是否 OK。我们运行下列命令来确认 Node.js 的版本。复制代码代码如下:root@ubuntu-15:~# node -v v4.0.0-pre在命令行下不带参数的运行node 就会进入 REPL(Read-Eval-Print-Loop,读-执行-输出-循环)模式,它有一个简化版的emacs 行编辑器,通过它你可以交互式的运行JS和查看运行结果。五、编写测试程序我们也可以写一个很简单的终端程序来测试安装是否成功,并且工作正常。要做这个,我们将会创建一个“test.js” 文件,包含以下代码,操作如下:现在为了运行上面的程序,在命令行运行下面的命令: 复制代码代码如下:root@ubuntu-15:~# node test.js 在一个成功安装了 Node JS 的环境下运行上面的程序就会在屏幕上得到上图所示的输出,这个程序加载类util” 到变量 “util” 中,接着用对象 “util” 运行终端任务,console.log 这个命令作用类似 C++ 里的cout就是这些了。假如你刚刚开始使用Node.js 开发应用程序,希望本文能够通过在 ubuntu 上安装、运行Node.js 让你了解一下Node.js 的大概。