惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
量子位
小众软件
小众软件
C
Cybersecurity and Infrastructure Security Agency CISA
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
V
Vulnerabilities – Threatpost
Know Your Adversary
Know Your Adversary
T
Threat Research - Cisco Blogs
Latest news
Latest news
Spread Privacy
Spread Privacy
C
Cyber Attacks, Cyber Crime and Cyber Security
NISL@THU
NISL@THU
T
Tor Project blog
Hacker News: Ask HN
Hacker News: Ask HN
V2EX - 技术
V2EX - 技术
T
The Exploit Database - CXSecurity.com
博客园 - 三生石上(FineUI控件)
K
Kaspersky official blog
Cyberwarzone
Cyberwarzone
博客园 - 叶小钗
博客园 - 聂微东
Last Week in AI
Last Week in AI
爱范儿
爱范儿
腾讯CDC
博客园 - Franky
美团技术团队
J
Java Code Geeks
O
OpenAI News
L
Lohrmann on Cybersecurity
Simon Willison's Weblog
Simon Willison's Weblog
有赞技术团队
有赞技术团队
T
Threatpost
G
GRAHAM CLULEY
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
宝玉的分享
宝玉的分享
I
Intezer
N
News and Events Feed by Topic
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
The Blog of Author Tim Ferriss
S
Security @ Cisco Blogs
Forbes - Security
Forbes - Security
N
News | PayPal Newsroom
Stack Overflow Blog
Stack Overflow Blog
Scott Helme
Scott Helme
H
Hacker News: Front Page
Cloudbric
Cloudbric

Java技术经验分享

生产故障处理SOP分享 | Java技术经验分享 系统稳定性建设实践总结【转载】 | Java技术经验分享 valine访问leancloud国际版异常,评论失效修复 | Java技术经验分享 匆匆忙忙的2021 | Java技术经验分享 聊一下换工作 | Java技术经验分享 IoT系列(2):WIFI设备常见配网方案介绍 | Java技术经验分享 IoT系列(1):什么是物联网 | Java技术经验分享 Java8特性2 - StreamApi | Java技术经验分享 Java8特性1 - lambda表达式&函数式接口 | Java技术经验分享 设计模式(5)-适配器模式 | Java技术经验分享 设计模式(4)-建造者模式 | Java技术经验分享 设计模式(3)-原型模式与浅拷贝和深拷贝 | Java技术经验分享 设计模式(2)-工厂模式图文介绍 | Java技术经验分享 设计模式(1)-带你了解3类8种单例模式 | Java技术经验分享 Java时间处理5---Java8中时区相关类库介绍 | Java技术经验分享 Java时间处理4---Java8中LocalDate、LocalTime、LocalDateTime介绍 | Java技术经验分享 Java时间处理3---Java8中Instant、Duration、Period、Clock介绍 | Java技术经验分享 一些有意思的问答 | Java技术经验分享 Nacos系列博客说明 | Java技术经验分享 菜鸡程序员的2019年度总结 | Java技术经验分享 Java中“附近的人”实现方案讨论及代码实现 | Java技术经验分享 Java时间处理2----时区TimeZone类方法探究(Java8以前) | Java技术经验分享 Java时间处理1----Date和Calendar方法探究(Java8以前) | Java技术经验分享 FastJson中JSONString、JavaBean、JSONObject、JSONArray的转换关系及API示例 | Java技术经验分享 2019.11软考软件设计师归来心得体会及复习备考指南 | Java技术经验分享 你还没用过“约定式提交”吗?那你赶紧来补补知识吧 | Java技术经验分享 教你如何看懂UML中的类图及类图中的关系 | Java技术经验分享 设计模式总览 | Java技术经验分享 萌新入门Github请看这里,学不会远程教 | Java技术经验分享 Hexo的工作原理探究 | Java技术经验分享 Hexo-theme-butterfly修改调整记录教程 | Java技术经验分享 排序8:基数排序 | Java技术经验分享 排序7:归并排序 | Java技术经验分享 排序6:快速排序 | Java技术经验分享 排序5:冒泡排序 | Java技术经验分享 排序4:堆排序 | Java技术经验分享 排序3:选择排序 | Java技术经验分享 排序2:希尔排序 | Java技术经验分享 排序1:直接插入排序 | Java技术经验分享 推荐一款博客一文多发的良心工具OpenWrite | Java技术经验分享 近期学习计划 | Java技术经验分享 Nacos(九):Nacos集群部署和遇到的问题 | Java技术经验分享 Nacos(八):Nacos持久化 | Java技术经验分享 Nacos(七):Nacos共享配置 | Java技术经验分享 Nacos(六):多环境下如何“管理”及“隔离”配置和服务 | Java技术经验分享 Nacos(五):多环境下如何“读取”Nacos中相应的配置 | Java技术经验分享 Nacos(四):SpringCloud项目中接入Nacos作为配置中心 | Java技术经验分享 Nacos(三):Nacos与OpenFeign的对接使用 | Java技术经验分享 Nacos(二):SpringCloud项目中接入Nacos作为注册中心 | Java技术经验分享 Nacos(一):Nacos介绍 | Java技术经验分享 20190719小组分享 | Java技术经验分享 Java中equals和HashCode方法的分析 | Java技术经验分享 Java中==和equals方法的分析 | Java技术经验分享 Java中的自动拆装箱、装箱缓存 | Java技术经验分享 About-blog | Java技术经验分享 Java中的编译、反编译和反编译工具全家桶分享 | Java技术经验分享 finalize()的生命周期(执行过程) | Java技术经验分享 Java关键字之final、finally与finalize方法 | Java技术经验分享 Java中重写、重载 | Java技术经验分享 Java中面向对象的三大特征:继承、封装、多态 | Java技术经验分享 DockerFile介绍 | Java技术经验分享 Docker环境下安装Gitlab | Java技术经验分享 Docker中私有仓库的搭建流程 | Java技术经验分享 Centos7下两种方式安装Docker-CE | Java技术经验分享 Vert.x创建一个Http服务 | Java技术经验分享 Vert.x创建TCP服务端及客户端 | Java技术经验分享 Vert.x Core(二)- Event Bus(事件总线) | Java技术经验分享 Vert.x-Core(一)- 基础篇 | Java技术经验分享 SpringBoot项目中实现国际化 | Java技术经验分享 Vert.x介绍 | Java技术经验分享 毕设选题项目本地运行环境搭建教程 | Java技术经验分享 算法笔试题:1元,5元,10元,20元,50元、100元面值人民币组合给定x元的问题 | Java技术经验分享 Quartz学习总结 | Java技术经验分享 SpringBoot2.x集成Redis | Java技术经验分享 SpringBoot2.x集成MongoDB | Java技术经验分享 [SpringCloud学习] - 浅谈微服务架构 | Java技术经验分享 基于hexo和coding免费搭建个人博客网站 | Java技术经验分享 Hello World | Java技术经验分享
Jupyter Notebooks的安装和使用介绍 | Java技术经验分享
文章作者: LarsCheng · 2018-10-17 · via Java技术经验分享

最近又开始重新学习Python,学习中使用到了一款编辑器Jupyter Notebooks ,非常想安利给初学python的同学。
注:本文内容仅针对windows环境下安装和配置Jupyter Notebooks 。

1.Jupyter Notebooks 简介

国际惯例还是来一段官方的介绍:

Jupyter Notebook是一个Web应用程序,允许您创建和共享包含实时代码,方程,可视化和说明文本的文档。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等。

Notebooks其实就像是你的python笔记本一样,不仅可以运行书写的python代码,同时还支持markdown格式的文本显示。
在Notebooks中不仅可以运行python,它还支持R、Julia 和 JavaScript等其他40余种语言。

2.安装Jupyter Notebooks

安装方式大致分为两种:

  • pip 方法
  • Anaconda 方法

pip 方法

使用pip命令安装之前需要我们先安装Python。此处以python3.6为例

1.安装Python

可以在python下载处,选则对应的系统版本,我这里选择Windows x86-64 executable installer下载安装。

具体的安装就不再赘述,主要说明一下几点:
需要注意的是安装时记得勾选Add Python 3.6 to PATH,然后选择Customize installation
添加 Path,是为了以后可以在任何目录下使用 cmd 运行 Python,跟 Java 的 path一样。如果安装过程中没有添加 Path,也可以以后再添加。

自定义安装可以选择安装路径,这里我的安装路径为E:\MyTools\Python\Python36

2.升级pip到最新版本

安装python3.6的同时会安装pip,但此时需要升级pip到最新版

打开命令提示窗,切换到python3.6的安装目录下的Scripts文件夹。

执行如下命令:

1
pip install --upgrade pip

3.安装Jupyter Notebooks

打开命令提示窗,切换到python3.6的安装目录下的Scripts文件夹。执行如下命令

1
pip install jupyter

安装完成Scripts文件夹如下图

4.启动 Jupyter Notebooks

打开命令提示窗,切换到python3.6的安装目录下的Scripts文件夹。执行如下命令

1
jupyter notebook

出现如下提示,启动成功,并且浏览器自动打开notebook窗口。此时显示的是Script文件夹下的文件目录。

Anaconda 方法

对与初学者而言,还是推荐该使用 Anaconda 来安装 Python 和 Jupyter Notebooks。

在安装 Anaconda 的同时会安装Python 和 Jupyter Notebooks这两个工具,并且还包含相当多数据科学和机器学习社区常用的软件包。

可以在Anaconda官网下载页来下载安装包,它提供了python3.6和python2.7两个版本,可以根据自己的需要来下载对应系统的安装文件。具体的安装步骤可以参考Windows系统安装Anaconda

修改jupyter notebook工作空间

在我们第一次启动Notebooks时,默认显示的是Script文件夹下的文件目录。因为此时notebooks默认的工作空间是安装目录。

当然了,你也可以自定义一个专属的工作空间,操作如下:

1.创建一个文件夹,此处我创建了一个jupyter-notebook文件夹,他的目录是E:\MyTools\Python\jupyter-notebook

2.获取jupyter notebook的配置文件
打开命令提示窗口,执行如下命令:

1
jupyter notebook --generate-config

此处需要注意的是,如果你已经配置过notebooks的相关信息,执行此命令会提示你是否覆盖原有配置。如果是首次执行此命令,则生成配置到相应目录。如下图所示,输入y直接覆盖

3.修改配置文件

打开生成的配置文件,修改#c.NotebookApp.notebook_dir = ''此条配置,在单引号中填入我们刚才创建的专属工作空间,此处我这里是E:\MyTools\Python\jupyter-notebook,此条配置默认是注释掉的,所以我们需要删除第一个#,ok,保存配置文件。

好了,现在打开命令提示窗口,执行jupyter notebook重新启动notebooks,浏览器相应会打开notebooks主页,主页中相应会显示工作空间中的文件目录。

注意:启动notebooks之后,不要不要不要关闭该命令提示窗口,因为一旦关闭该窗口就会与本地服务器断开连接

jupyter notebook 基本使用

如果按照上面的操作进行配置后,启动notebooks后的首页应该是这个样子的

下面对首页上的功能按钮进行基本说明:


第一部分介绍:

  • Files:列出所有文件
  • Running:展示你当前打开的终端和笔记本
  • Clusters:由 IPython 并行提供的(emmmmm,暂时也没使用过)

第二部分介绍:
点击右侧的New按钮可展开如图的下拉列表按钮,其内包括了可创建的四种工作环境:

  • Python3:创建一个可以执行python代码的文件(后面详细介绍
  • Text File:创建文本类型的文件,后缀名为.txt
  • Folder:创建一个文件夹
  • Teminal:在浏览器中打开一的命令窗口

第三部分介绍:
这里的按钮其实就是对当前工作空间内的文件进行复制、重命名等的一系列操作:

  • Duplicate:复制文件
  • Rename:重命名
  • Move:移动文件
  • Download:下载文件
  • View:在浏览器中预览文件内容
  • Edit:编辑文件
  • Delete(小图标):删除选中的文件

jupyter notebook 中编写并执行python代码

在首页右侧点击New,选择点击Python3,页面即跳转到一个新的窗口,此时已经创建了一个新的文件,红色区域为该文件的名称(默认为Untitled),点击即可修改文件名,此处我们命名为test,如下所示,

In [ ] :后面的输入框中我们可以输入一段python代码进行测试,点击Run按钮执行,也可以快捷键Ctrl+Enter执行代码,结果如下

Jupyter Notebooks 的强大之处在于除了能够输入代码之外,你还可以用 Markdown 添加叙述性和解释性文本。比如我想添加一个文字说明,在代码上面添加了一个单元格,并以 Markdown 输入了一个文本。按下Ctrl+Enter,效果如下:

jupyter notebook 中的快捷键介绍

当你熟练使用notebooks的基本功能后,掌握他的快捷键是十分必要的,这样可以大大提高你的工作效率。下面是一些比较常用的快捷键:

编辑模式:点击单元格按下Enter
命令模式(退出编辑模式):Esc

进入命令模式之后(此时你没有活跃单元),有以下快捷键:

  • A:在所选单元之上插入一个新的单元
  • B:在所选单元之下插入一个新的单元
  • D:连续按两次删除所选的单元
  • Z:撤销被删除的单元
  • Y:将当前选中的单元变成一个代码单元
  • F:查找和替换
  • Shift +上或下箭头:可选择多个单元。
  • Shift + M:在多选模式时,可合并你的选择。

处于编辑模式时(在命令模式时按 Enter 会进入编辑模式),下列快捷键很有用:

  • Ctrl + Home :到达单元起始位置
  • Ctrl + S :保存进度
  • Ctrl + Enter :会运行你的整个单元块
  • Alt + Enter :不止会运行你的单元块,还会在下面添加一个新单元
  • Ctrl + Shift + F :打开命令面板

可在命令模式按 H 或进入Help > Keyboard Shortcuts。可以查看键盘快捷键完整列表。如下:

总结

关于notebooks的安装和基本用法就先介绍到这里了,有兴趣的朋友不妨动手安装一个试试。

参考和感谢

https://baijiahao.baidu.com/s?id=1601883438842526311&wfr=spider&for=pc
http://www.cnblogs.com/zlslch/p/6984403.html