首页 > 其他分享 >jupyter notebook 建立深度学习 模型 jupyter notebook入门

jupyter notebook 建立深度学习 模型 jupyter notebook入门

时间:2024-11-18 19:28:59浏览次数:1  
标签:jupyter 入门 登录 df notebook cell profit Notebook 复制

jupyter notebook 建立深度学习 模型 jupyter notebook入门



文章目录

  • Jupyter Notebook简介
  • 创建一个新的Notebook
  • cell
  • cell模式
  • 快捷键
  • Kernel
  • 简单的Python程序的例子
  • 数据分析的例子
  • 设置
  • 检查数据集
  • 使用matplotlib进行绘图
  • 分享Notebooks
  • 分享之前的工作
  • 导出Notebooks
  • Jupyter Notebook扩展工具
  • 参考文献


本教程介绍Jupyter Notebook的基本用法

Jupyter Notebook简介

Anaconda是安装Jupyter Notebook的最佳方式。安装完成之后,启动Anaconda的Navigator,并启动Notebook,呈现如下界面:

jupyter notebook 建立深度学习 模型 jupyter notebook入门_python


观察页面,可以看到浏览器中显示类似https://localhost:8888/tree.的网址,代表本地运行着Notebook的服务器。

创建一个新的Notebook

新建一个Notebook Python 3 (ipykernel),生成了一个Untitled.ipynb文件。.ipynb文件即所谓的一个Notebook,实际是基于JSON格式的文本文件,并且包含元数据(“Edit > Edit Notebook Metadata”)。新建的Notebook的界面大致如下:

jupyter notebook 建立深度学习 模型 jupyter notebook入门_Python_02


这里有两个关键元素cell和kernal

  • cell: 文本或者代码执行单元,由kernel执行。
  • kernel: 计算引擎,执行cell的文本或者代码,本文基于Python 3 ipykernel引擎。

cell

主要包含两种类型的cell:

  • 代码cell:包含可被kernel执行的代码,执行之后在下方显示输出。
  • Markdown cell:书写Markdown标记语言的cell。

试着输入一行代码,查看执行效果:

print('Hello World!')
  • 1.
Hello World!
  • 1.

代码执行之后,cell左侧的标签从In [ ] 变成了 In [1]In代表输入,[]中的数字代表kernel执行的顺序,而In [*]则表示代码cell正在执行代码。以下例子显示了短暂的In [*]过程。

import time
time.sleep(3)
  • 1.
  • 2.

cell模式

有两种模式,编辑模式(edit mode)和命名模式(command mode)

  • 编辑模式:enter健切换,绿色轮廓
  • 命令模式:esc健切换,蓝色轮廓

快捷键

使用Ctrl + Shift + P命令可以查看所有Notebook支持的命令。

在命名模式下,一些快捷键将十分有帮助

  • 上下键头可以上下cell移动
  • A 或者 B在上方或者下方插入一个cell
  • M 将转换活动cell为Markdown cell
  • Y 将设置活动cell为代码 cell
  • D+D(两次)删除cell
  • Z 撤销删除
  • H 打开所有快捷键的说明

在编辑模式,Ctrl + Shift + -将以光标处作为分割点,将cell一分为二。

Kernel

每个notebook都基于一个内核运行,当执行cell代码时,代码将在内核当中运行,运行的结果会显示在页面上。Kernel中运行的状态在整个文档中是延续的,可以跨越所有的cell。这意思着在一个Notebook某个cell定义的函数或者变量等,在其他cell也可以使用。例如:

import numpy as np
def square(x):
    return x * x
  • 1.
  • 2.
  • 3.

执行上述代码cell之后,后续cell可以使用npsquare

x = np.random.randint(1, 10)
y = square(x)
print('%d squared is %d' % (x, y))
  • 1.
  • 2.
  • 3.
3 squared is 9
  • 1.

注意:Restart Kernal将清空保存在内存中的变量。同时,在浏览器中关闭一个正在运行的notebook页面,并未真正关闭终止Kernel的运行,其还是后台执行。要真正关闭,可选择File > Close and Halt,或者Kernel > Shutdown

以下教程将分两个例子实现基本的Notebook编写,包括简单的Python程序和Python数据分析的例子。首先,重命名文档,更改Untitled并输入相关文件名。注意,在写作过程中,常用Ctrl + S保存已有的文档。

简单的Python程序的例子

本节主要目的掌握 python的基本语法,要求完成基于python的选择排序算法:

  1. 定义selection_sort函数执行选择排序功能。
  2. 定义test函数进行测试,执行数据输入,并调用selection_sort函数进行排序,最后输出结果。

数据分析的例子

本例中将分析历年财富世界500强的数据(1955-2005),可从 此处下载

设置

导入相关的工具库

%matplotlib inline
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
  • 1.
  • 2.
  • 3.
  • 4.

 pandas用于数据处理,matplotlib用于绘图,seaborn使绘图更美观。第一行不是python命令,而被称为line magic。%表示作用与一行,%%表示作用于全文。此处%matplotlib inline 表示使用matlib画图,并将图片输出。

随后,加载数据集。

df = pd.read_csv('fortune500.csv')
  • 1.

检查数据集

上述代码执行生成的df对象,是pandas常用的数据结构,称为DataFrame,可以理解为数据表。

df.head()
  • 1.



Year

Rank

Company

Revenue (in millions)

Profit (in millions)

0

1955

1

General Motors

9823.5

806

1

1955

2

Exxon Mobil

5661.4

584.8

2

1955

3

U.S. Steel

3250.4

195.4

3

1955

4

General Electric

2959.1

212.6

4

1955

5

Esmark

2510.8

19.1

df.tail()
  • 1.



Year

Rank

Company

Revenue (in millions)

Profit (in millions)

25495

2005

496

Wm. Wrigley Jr.

3648.6

493

25496

2005

497

Peabody Energy

3631.6

175.4

25497

2005

498

Wendy's International

3630.4

57.8

25498

2005

499

Kindred Healthcare

3616.6

70.6

25499

2005

500

Cincinnati Financial

3614.0

584

对数据属性列进行重命名,以便在后续访问

df.columns = ['year', 'rank', 'company', 'revenue', 'profit']
  • 1.

接下来,检查数据条目是否加载完整。

len(df)
  • 1.
25500
  • 1.

从1955至2055年总共有25500条目录。然后,检查属性列的类型。

df.dtypes
  • 1.
year         int64
rank         int64
company     object
revenue    float64
profit      object
dtype: object
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

其他属性列都正常,但是对于profit属性,期望的结果是float类型,因此其可能包含非数字的值,利用正则表达式进行检查。

non_numberic_profits = df.profit.str.contains('[^0-9.-]')
df.loc[non_numberic_profits].head()
  • 1.
  • 2.



year

rank

company

revenue

profit

228

1955

229

Norton

135.0

N.A.

290

1955

291

Schlitz Brewing

100.0

N.A.

294

1955

295

Pacific Vegetable Oil

97.9

N.A.

296

1955

297

Liebmann Breweries

96.0

N.A.

352

1955

353

Minneapolis-Moline

77.4

N.A.

确实存在这样的记录,profit这一列为字符串,统计一下到底存在多少条这样的记录。

len(df.profit[non_numberic_profits])
  • 1.
369
  • 1.

总体来说,利润(profit)列包含非数字的记录相对来说较少。更进一步,使用直方图显示一下按照年份的分布情况。

bin_sizes, _, _ = plt.hist(df.year[non_numberic_profits], bins=range(1955, 2006))
  • 1.

jupyter notebook 建立深度学习 模型 jupyter notebook入门_Python_03

可见,单独年份这样的记录数都少于25条,即少于4%的比例。这在可以接受的范围内,因此删除这些记录。

df = df.loc[~non_numberic_profits]
df.profit = df.profit.apply(pd.to_numeric)
  • 1.
  • 2.

再次检查数据记录的条目数。

len(df)
  • 1.
25131
  • 1.
df.dtypes
  • 1.
year         int64
rank         int64
company     object
revenue    float64
profit     float64
dtype: object
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.

可见,上述操作已经达到清洗无效数据记录的效果。

使用matplotlib进行绘图

接下来,以年分组绘制平均利润和收入。首先定义变量和方法。

group_by_year = df.loc[:, ['year', 'revenue', 'profit']].groupby('year')
avgs = group_by_year.mean()
x = avgs.index
y1 = avgs.profit
def plot(x, y, ax, title, y_label):
    ax.set_title(title)
    ax.set_ylabel(y_label)
    ax.plot(x, y)
    ax.margins(x=0, y=0)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

现在开始绘图

fig, ax = plt.subplots()
plot(x, y1, ax, 'Increase in mean Fortune 500 company profits from 1955 to 2005', 'Profit (millions)')
  • 1.
  • 2.

jupyter notebook 建立深度学习 模型 jupyter notebook入门_jupyter_04

看起来像指数增长,但是1990年代初期出现急剧的下滑,对应当时经济衰退和网络泡沫。再来看看收入曲线。

y2 = avgs.revenue
fig, ax = plt.subplots()
plot(x, y2, ax, 'Increase in mean Fortune 500 company revenues from 1955 to 2005', 'Revenue (millions)')
  • 1.
  • 2.
  • 3.

jupyter notebook 建立深度学习 模型 jupyter notebook入门_jupyter_05

公司收入曲线并没有出现急剧下降,可能是由于财务会计的处理。对数据结果进行标准差处理。

def plot_with_std(x, y, stds, ax, title, y_label):
    ax.fill_between(x, y - stds, y + stds, alpha=0.2)
    plot(x, y, ax, title, y_label)
fig, (ax1, ax2) = plt.subplots(ncols=2)
title = 'Increase in mean and std Fortune 500 company %s from 1955 to 2005'
stds1 = group_by_year.std().profit.values
stds2 = group_by_year.std().revenue.values
plot_with_std(x, y1.values, stds1, ax1, title % 'profits', 'Profit (millions)')
plot_with_std(x, y2.values, stds2, ax2, title % 'revenues', 'Revenue (millions)')
fig.set_size_inches(14, 4)
fig.tight_layout()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

jupyter notebook 建立深度学习 模型 jupyter notebook入门_快捷键_06

可见,不同公司之间的收入和利润差距惊人,那么到底前10%和后10%的公司谁的波动更大了?此外,还有很多有价值的信息值得进一步挖掘。

分享Notebooks

分享Notebooks通常来说一般存在两种形式:一种向本文一样以静态非交互式分享(html,markdown,pdf等);另外一种通过Git版本工具或者 Google Colab进行协同开发

分享之前的工作

分享的Notebooks应包括代码执行的输出,要保证执行的结果符合预期,需完成以下几件事:

  • 点击"Cell > All Output > Clear"
  • 点击"Kernel > Restart & Run All"
  • 等待所有代码执行完毕

这样做的目的使得Notebook不含有中间的执行结果,按照代码执行的顺序,产生稳定的结果。

导出Notebooks

使用"File > Download as"可以以多种格式导出Notebooks,例如:html, pdf, markdown文档等。如果希望以协同方式共享.ipynb,则可以借助相关的在线平台,如 Github或者 Google Colab

Jupyter Notebook扩展工具

Jupter Notebook的扩展工具(extensions)可以提供丰富的附加功能,例如代码补全、内容目录、变量检查等。本节演示如何安装扩展工具和启用代码补全功能。

首先Anaconda Navigator中启动命令行终端,

jupyter notebook 建立深度学习 模型 jupyter notebook入门_数据分析_07


在弹出的终端中依次输入下面4条命令,注意要耐心等待命令执行完成。

pip install jupyter_contrib_nbextensions

jupyter contrib nbextension install --user

pip install jupyter_nbextensions_configurator

jupyter nbextensions_configurator enable --user

等待最后一条指令完成即可。完成之后,重新打开Jupyter Notebook启动页面,可以看到:

jupyter notebook 建立深度学习 模型 jupyter notebook入门_数据分析_08

点击Nbextensions标签,勾选Hinterland:

jupyter notebook 建立深度学习 模型 jupyter notebook入门_jupyter_09

接下来可以在notebook进行验证,Tab健可以补全或者选择代码。

参考文献


原文链接:https://blog.51cto.com/u_13303/9144456

标签:jupyter,入门,登录,df,notebook,cell,profit,Notebook,复制
From: https://www.cnblogs.com/sunny3158/p/18553481

相关文章

  • Jupyter的全面探索:从入门到高级应用 ,安装最常见的是使用Python的包管理器pip或Anacond
    Jupyter的全面探索:从入门到高级应用,安装最常见的是使用Python的包管理器pip或Anaconda发行版1.引言Jupyter项目的简介Jupyter项目是一个开源项目,旨在为科学计算、数据分析和教育提供交互式计算和数据科学环境。它允许用户创建和共享包含实时代码、方程、可视化以及叙述性......
  • 【Python入门】探索Python字符串的奥秘:常用方法全解析
    ......
  • 为什么学习 python 最好的工具是 Jupyter ?Jupyter 在vscode 中使用
    为什么学习python最好的工具是Jupyter?Jupyter在vscode中使用一、简介文本适合python初学者,着重点在于Jupyter基本安装与使用。Jupyter是一个强大的Python工编程工具。编程语言交互环境,可以在浏览器中,也可以VsCode插件中运行。jupyter中可以用多种形式创建笔......
  • 【学习心得】Jupyter常用操作与魔法方法
    【学习心得】Jupyter常用操作与魔法方法一、安装与打开Jupyter是什么我就不啰嗦了,直接安装:pipinstalljupyter 安装完后,在你想要打开的项目路径下,唤出CMD执行下面命令就可以使用jupyternotebook了jupyternotebook也可以用更加好用的jupyterlab,它的命名如下jupyter......
  • 【Python + Jupyter】安装教程:
    【Python+Jupyter】安装教程:一、安装 Python安装Python没啥说的,傻瓜式点击默认选项即可:Python下载地址:https://www.python.org/downloads/windows/ (若访问不通畅,可尝试切网络,比如手机热点等)在下载页面找到 StableReleases,一定是StableReleases,不能是 Pre-releases,......
  • 01MybatisPlus(SpringCloud入门必学!!!!微服务!!项目实战!!深度理解MP用法!!!)
    微服务springCloud,今天第一课就是MybatisPlus!!!大家在日常开发中应该能发现,单表的CRUD功能代码重复度很高,也没有什么难度。而这部分代码量往往比较大,开发起来比较费时。        因此,目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的......
  • 【MySQL】库的基础操作入门指南
    ......
  • q模拟入门 ARC139F Solution
    等价于\(F_{2}^m\)里选出\(n\)个向量,求每种选择方案之和枚举线性基大小\(k\),设其主元是\(a_1\sima_k\),等价于让\(n\)个向量张成\(k\)维空间,也等价于\(n\)维空间选出\(k\)个向量彼此线性无关,方案数:\[\prod_{i=0}^{k-1}({2^n-2^i})\]线性基最大异或和期望:主元必选......
  • 【PhpStorm 2024 软件下载与入门级安装教程】-高效智能的 PHP IDE
    支持主流框架PhpStorm完美支持Symfony、Drupal、WordPress、ZendFramework、Laravel、Magento、Joomla!、CakePHP、Yii...等各种主流框架。全能的PHP工具内建编辑器实际“了解”您的代码并且深刻理解其结构,支持所有PHP语言功能,在开发现代技术和维护遗留项目皆可完美适用。......
  • 安全渗透工程师入门最快需要多久?提供具体路线和学习框架
    前言网络渗透这个东西学起来如果没有头绪和路线的话,是非常烧脑的。最快达到入门也要半年理清网络渗透学习思路,把自己的学习方案和需要学习的点全部整理,你会发现突然渗透思路就有点眉目了。网络安全好混,但不容易混得好。其实任何行业都是这样,想混得好,必须不断学习提升。......