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

Jupyter 是一个基于 Web 的交互式计算平台,使用户能够创建和共享文档,这些文档包含实时代码、方程式、可视化图表和解释文字。Jupyter 在数据分析领域被广泛应用,它提供了一个直观、交互式的操作界面,使得用户能够更容易地探索数据、可视化数据以及进行数据处理和建模的实验。

Jupyter 不仅能够对 Python 代码进行展示和格式化,还能够保存用户的历史代码和结果以及数据分析结果。这些结果可以在后期随时查看和修改,使得 Python 的学习和应用变得更加方便和高效。

总之,学习一下jupyter还是非常必要的,也非常的方便,本文的操作主要针对Windows系统。

1.安装Jupyter

安装是非常简单的,一般有两种方式,一种就是python环境,另外一种就是Anaconda环境;

1.1Python 环境下安装

  1. 安装 Python。从 Python 官方网站[1]下载最新版本的 Python。

  2. 安装 pip。pip 是 Python 的包管理工具,用于安装和管理 Python 包。在命令行输入以下命令来检查 pip 是否已经安装:

    pip --version
    

    如果 pip 已经安装则会输出 pip 的版本信息,否则需要手动安装。

  3. 安装 Jupyter Notebook。使用 pip 命令来安装 Jupyter Notebook。在命令提示符或终端窗口中输入以下命令:

    pip install jupyter
    

    等待一段时间,Jupyter Notebook 就会被安装到你的电脑上了。

  4. 启动 Jupyter Notebook。安装完成后,在命令提示符或终端窗口中输入以下命令来启动 Jupyter Notebook :

    jupyter notebook
    

    这个命令会自动打开你的默认浏览器,展示 Jupyter Notebook 的主页,并在后台启动一个 Jupyter 内核(Kernel)。

1.2Anaconda 环境下安装

正常的话,安装Anaconda的时候,jupyter是伴随anaconda安装好的,不需要按照如下步骤再去安装;

  1. 安装 Anaconda。从 Anaconda 官方网站[3]下载最新版本的 Anaconda。

  2. 启动 Anaconda Navigator。安装完毕后,启动 Anaconda Navigator,它是一个可视化的应用程序,方便用户管理和运行 Anaconda 中包含的各种工具和应用。

  3. 安装 Jupyter Notebook。在 Anaconda Navigator 中,点击左侧导航栏的 “Environments”,然后在右边的区域中选中需要安装 Jupyter Notebook 的环境,在下方的 “Packages” 标签页中搜索 “jupyter”,并勾选 “jupyter” 和 “notebook”。然后点击 “Apply” 按钮进行安装即可。

    image-20230423155830561

  4. 启动 Jupyter Notebook。安装完成后,在 Anaconda Navigator 中点击 “Launch” 按钮启动 Jupyter Notebook,也可以在命令提示符或终端窗口中输入以下命令来启动:

    jupyter notebook
    

2.启动命令

  • 默认端口启动

    jupyter notebook
    

    浏览器地址栏中默认地将会显示:http://localhost:8888/tree。其中,“localhost”指的是本机,“8888”则是端口号,每多启动一次,端口号类推

  • 指定端口启动

    jupyter notebook --port <port_number>
    指定端口号只有数字,不含 <>
    
  • 启动服务器但不打开浏览器

    jupyter notebook --no-browser
    

    终端会显示出打开浏览器的链接,若需启动浏览器,复制链接打开即可

3.配置文件存放位置

Jupyter Notebook 的启动目录是指 Jupyter Notebook 执行服务时的默认工作目录。当你在 Jupyter Notebook 中新建一个文件时,默认情况下会在该目录下创建文件。

设置 Jupyter Notebook 的启动目录非常有用,尤其是在你的工程有大量分散在不同目录中的数据或代码时。通过将启动目录设置为你的工程根目录,你就可以更轻松的管理和访问这些数据或代码了。

例如,假设你有一个名为 “my_project” 的项目,其中包含多个子目录和数据文件。如果你将 Jupyter Notebook 的启动目录设置为 “my_project” 目录,那么你就可以很方便地访问这个项目中的任何文件,而无需在 Jupyter Notebook 中输入完整路径。

另外,在 Jupyter Notebook 里,你可以使用一些 Python 库来处理和可视化你的数据。如果你使用的是相对路径来访问数据文件,那么使用相对于启动目录的路径通常会比使用绝对路径更方便。

jupyter默认文件都放在用户目录下,如下图,启动的时候就可以看到启动目录;进入jupyter也确实是这个目录下的内容;显然这是有问题的,所以需要我们更改文件的存放位置;

image-20230423113443692

image-20230423113524823

  • 新建一个目标文件夹

    在你想放这些文件的位置新建一个目录,比如我的目录是:D:\Coding\Jupyter_PyProject

  • 查看配置文件路径

    命令窗口输入这行命令,或者在你对应的python环境下的命令窗口输入这行命令,即可查看默认的配置文件位置;但是这条命令虽然可以用于查看配置文件所在的路径,但主要用途是是否将这个路径下的配置文件替换为默认配置文件(相当于重置)

    jupyter notebook --generate-config
    

    image-20230423114534766

  • 修改配置文件

    上面找到了配置文件的位置,现在我们只需要打开这个文件,然后编辑即可;windows比较方便,利用记事本打开可以打开,但是可能找目标代码就有点麻烦了,这里使用notepad++打开;直接Ctrl+F搜索关键字c.NotebookApp.notebook_dir,就可以找到目标代码行了;

    image-20230423115246543

    找到这行代码后,取消注释,并在单引号内写上事先建好的用来存放文件的目录地址,保存退出;

    image-20230423115545054

  • 重新启动jupyter验证配置情况;

    可以看到这里已经修改成功了;

    image-20230423133121188

  • 这里有个坑

这里要强调一下通过命令打开和通过anaconda安装的时候提供的快捷方式打开,因为这里有坑,当你安装完Anaconda的时候,你会发现利用命令和快捷方式都能打开一个jupyter,这俩打开方式是不一样的,比如修改好了jupyter的启动目录,但是在使用快捷方式打开后,启动目录还是默认的目录;具体的差别请查看下面的Q&A部分;

4.界面功能

  • Files

    image-20230423214418700

  • Running

    Running tab 显示了当前正在运行的内核和 Jupyter Notebook 进程。具体来说,Running tab 会列出所有当前正在运行的 Notebook,包括它的名称、所在目录、 Noteboook 文件的路径、内核(kernel)的状态、连接的用户以及它的启动时间等信息。

    通过 Running tab,您可以方便地查看已经打开的 Notebook,并可以选择以不同的方式关闭它们(关闭 Notebook 不会关闭内核),如停止内核、重启内核、删除 Notebook、打开终端、查看 Notebook 的启动日志等。此外,Running tab 还提供了一些高级功能,如将多个 Notebook 捆绑到单个服务中、配置和管理 Jupyter Notebook 服务器等。

    image-20230423213901301

  • Clusters

    在 Jupyter Notebook 中,Clusters tab 是指 Jupyter notebook 的一个组件,它是 IPython parallel 包提供的一个交互式界面,用于在多台计算机之间分配任务和协调计算。具体来说,Clusters tab 允许用户连接到一个或多个远程 IPython 核心(IPython engines),并在这些核心之间分发计算任务。

    在 Clusters tab 中,用户可以通过添加、删除、启动、停止和连接到 IPython 集群来管理集群。一旦连接到集群,用户可以在各个核心之间分配计算任务,以便以最大程度地同时使用多台计算机的 CPU 和内存资源。Clusters tab 还提供了一些额外的功能,如查看集群状态、监控工作负载和任务进度等。

    一般不用…

  • 编辑器界面

    这里搬运一张其他博主的图片,原文:https://zhuanlan.zhihu.com/p/441668517

    其实还是比较清晰的,但是如果你还是不熟悉,就翻译呗,翻译网页就ok了,至于汉化,网上很多办法反正我都没成功。

    img

5.主题扩展

5.1配置方法

  • 安装

    利用pip安装主题扩展

    pip install jupyterthemes
    
  • 加载可用的主题列表

    jt -l
    

    image-20230424024640368

  • 应用某个主题

    这里的主题名称就是上面主题列表中的主题名,如果命令报错,看下面的解决办法;

    jt -t 主题名称
    
  • 高级的配置

    jt -t 主题名称 -f 字体名称 -fs 字体大小 -cellw 代码单元格宽度 -T 工具栏 -N 笔记本名称
    

    详细内容参看官网:https://github.com/dunovank/jupyter-themes

  • 还原默认主题

    jt -r
    
  • jt命令不可用解决办法

    安装jupyter themes之后,运行jt命令,报错如下

    jt : 无法将“jt”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再
    试一次。
    所在位置 行:1 字符: 1
    + jt -l
    + ~~
        + CategoryInfo          : ObjectNotFound: (jt:String) [], CommandNotFoundException
        + FullyQualifiedErrorId : CommandNotFoundException
    

    解决办法就是配置一下环境变量,打开环境变量——点击系统变量——点击PATH——新建;

    当然这里的路径要和你的本地环境一致;

    如果不知道路径的话,可以打开命令窗口;切换到你安装jupyter themes的环境下(你没有安装多个虚拟环境,或者你jupyter就安装在默认的环境下,就不用管),运行pip show jupyterthemes

    最后不要定位到site-packages目录,要定位到Scripts目录;

    image-20230424115314361

    image-20230424114627808

5.2主题一览

  • chesterish

    image-20230424025431263

  • grade3

    image-20230424025535652

  • gruvboxd

    image-20230424025718565

  • gruvboxl

    image-20230424025811441

  • monokai

    image-20230424025838515

  • oceans16

    image-20230424025910536

  • onedork

    image-20230424025939437

  • solarizedd

    image-20230424030010676

  • solarizedl

    image-20230424030037606

6功能扩展

6.1关联Anaconda环境

6.1.1简介与安装

nb_conda 是一个 Jupyter Notebook 的插件,它可以在 Notebook 中实现 Conda 环境和包的访问。在 Jupyter 的文件浏览器中, nb_conda 扩展会添加一个 Conda 选项卡,点击该选项卡即可查看已存在的 Conda 环境列表。通过 nb_conda,用户可以轻松地在 Notebook 中创建、使用和分享自己的 Conda 环境。

  • 安装

    conda install nb_conda
    
  • 卸载

    canda remove nb_conda
    

6.1.2使用简介

  • 选择conda导航栏,就能显示anaconda的环境和包了;

    image-20230425203312630

  • Kernel选择

    image-20230425203521053

6.2扩展库

6.2.1简介与安装

扩展库一般涉及两个东西,一个就是jupyter_nbextensions_configurator,另一个是jupyter_contrib_nbextensions

jupyter_nbextensions_configurator 是一个用于管理和配置 Jupyter Notebook 的笔记本扩展程序的 GUI 工具。它提供了图形用户界面(GUI)来启用、禁用和配置 Jupyter Notebook 的 nbextensions 扩展程序。它还允许你使用预定义选项来配置这些扩展程序,使其更加符合你的需求。此外,它还提供了一些主题以改变笔记本的样式和交互体验。

jupyter_contrib_nbextensions 则是一组可用于增强 Jupyter Notebooks 功能的扩展程序集合。这些扩展包含多种类型的实用工具,如代码折叠、高亮显示、表格排序、导航栏等等。通过安装 jupyter_contrib_nbextensions,你可以更方便地管理你的笔记本,提高编程效率。需要注意的是,jupyter_contrib_nbextensions 中包括了 nbextensions_configurator 工具。

  • pip安装

    pip install jupyter_contrib_nbextensions
    jupyter contrib nbextensions install --user
    pip install jupyter_nbextensions_configurator
    jupyter nbextensions_configurator enable --user
    
    
  • conda安装

    conda install -c conda-forge jupyter_contrib_nbextensions
    jupyter contrib nbextension install --user
    conda install -c conda-forge jupyter_nbextensions_configurator
    jupyter nbextensions_configurator enable --user
    
  • 安装后发现扩展库里面只有四五个

    把扩展库卸载了重新装一遍就行了,建议一行一行的跑命令;

    • pip卸载

      pip uninstall jupyter_contrib_nbextensions
      
    • anaconda卸载

      conda remove jupyter_nbextensions_configurator
      
  • 安装之后,启动jupyter就能看到nbextensions了,要取消图中的选择,才能使用;使用即在对应的扩展前面选中即可;

    image-20230425202953077

6.2.1扩展推荐

  1. Table of Contents: 自动生成文档中的目录,方便快速导航和查找内容。[1]

    img

  2. Collapsible Headings: 折叠和展开单元格标题,节省页面空间并使整个文档更易于导航。[2]

  3. Code Folding: 可以折叠代码单元格中的代码块,有助于隐藏不必要的细节并提高可读性。 [3]

  4. ExecuteTime: 显示代码单元格的执行时间。[4]

    image-20230425202405625

  5. Notify: 当代码执行完成时向浏览器推送通知。[5]

部分内容及图片来源:https://cloud.tencent.com/developer/article/2135662

7.基本使用

先摆上两个链接,更多详细的内容参看:

  • Jupyter Notebook介绍、安装及使用教程

  • Jupyter Notebook 的快捷键

  • Jupyter Notebook笔记本的两种模式

    • 命令模式

      命令模式将键盘命令与Jupyter Notebook笔记本命令相结合,可以通过键盘不同键的组合运行笔记本的命令。
      按esc键进入命令模式。
      命令模式下,左侧边框线为蓝色粗线条。

    • 编辑模式

      编辑模式使用户可以在单元格内编辑代码或文档。
      编辑模式下,单元格边框和左侧边框线均为绿色。

    image-20230426004005339

  • 删除单元格快捷方式:进入命令模式后双击D键

  • 恢复单元格:进入命令模式后按Z键

  • Shift-Enter : 运行本单元,选中下个单元

  • Ctrl-Enter : 运行本单元

  • Alt-Enter : 运行本单元,在其下插入新单元

  • 加载指定位置源代码

    想要在Jupyter Notebook中直接加载指定位置的源代码到笔记本中;

    输入以下命令运行即可加载,运行完之后,代码会加载到单元格内,该命令会被注释;

    %load URL
    

    image-20230426003030312

  • 更多魔术命令

    上面就是魔术命令的一个应用,其他的还有类似获取当前文件位置的命令等等,更多内容参考官网:https://ipython.readthedocs.io/en/stable/interactive/magics.html

8.实战

8.1一个简单的绘图

#!/usr/bin/env python
# coding: utf-8

# In[1]:


import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


# In[2]:


# 创建测试数据
df = pd.DataFrame({
    'year': [2016, 2017, 2018, 2019, 2020],
    'sales': [100, 130, 150, 170, 200]
})


# In[3]:


# 绘制柱状图
plt.bar(df['year'], df['sales'], color='blue')
plt.xlabel('Year')
plt.ylabel('Sales')
plt.title('Sales over Year')
plt.show()


# In[ ]:

三个单元格分别导入包、创建测试数据、绘图;

运行需要严格按顺序执行;

image-20230426005408378

8.1爬取微博热搜

#!/usr/bin/env python
# coding: utf-8

# In[7]:


import requests
from bs4 import BeautifulSoup
import time


# In[18]:


headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36',
    'Cookie':'SUB=_2AkMTf37Hf8NxqwJRmPAVyG7jbol0wwrEieKlI48cJRMxHRl-yT9vqlYOtRB6OP9QKBlDDjMdGlMFok5NIqGTLxEXHcGr; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9W5UiecUPRV2SWjRzBIq2X0V; SINAGLOBAL=618205954960.4446.1681196722663; UOR=www.baidu.com,weibo.com,tophub.today; _s_tentry=-; Apache=5834475057987.334.1682445226156; ULV=1682445226181:3:3:1:5834475057987.334.1682445226156:1681202990452; XSRF-TOKEN=WKel-EKSczosZuoOMXKVIH9H; WBPSESS=durPiJxsbzq5XDaI2wW0N0pbOd3fbV1w3XF-VOcj7XTJ8vDiYa5jmFydo3U2yLd3wSJp3fMJK1n5h3EzWFi1ruvJTHRYOs9aoG4rZ64JjMz9qH5LbEnhw5Cxomz5i-gj'
}

url = 'https://s.weibo.com/top/summary'


# In[19]:


try:
    response = requests.get(url, headers=headers)
    response.encoding = 'utf-8'
    if response.status_code == 200:
        print(response.text)
    else:
        print(f'Request failed with status code {response.status_code}')
except RequestException as e:
    print(e)


# In[20]:


response_html = response.text


# In[21]:


soup = BeautifulSoup(response_html, 'lxml')


# In[22]:


hot_list = []


# In[23]:


items = soup.select('tbody > tr')


# In[31]:


for item in items:
    hot_title = item.select_one('.td-02 > a').get_text(strip=True)
    hot_url = 'https://s.weibo.com' + item.select_one('.td-02 > a')['href']
    hot_item = {
        'hot_title': hot_title,
        'hot_url': hot_url
    }
    hot_list.append(hot_item)


# In[43]:


for i in range(len(hot_list)):
    if i<10:
        print(i+1,hot_list[i]["hot_title"])

具体思路是,使用requests库向新浪微博实时热搜的页面发送请求,并通过BeautifulSoup库解析返回的html内容。然后遍历html中的各个元素,提取出热搜话题的标题和链接,最后将其存储到hot_list数组中。最后再遍历一次hot_list数组,输出前十个热搜话题。

需要注意的是,这段代码访问新浪微博网站时设置了请求头和Cookie,防止因缺失必要参数而无法请求到数据。同时,由于网站的内容可能随时发生变化或者有反爬虫机制的存在,因此需要在爬取时进行一定的容错处理,确保程序运行的稳定性。
在这里插入图片描述

Q&A

Anaconda快捷方式打开Jupyter和命令打开的启动目录不一样

具体这里的坑就是,明明已经修改过Jupyter的启动目录了,但是通过Anaconda安装的jupyter快捷方式打开的时候,打开的启动目录还是默认的目录,但是使用命令打开的时候,启动目录已经修改成功了;

  • 为什么

    在 Windows 上,可以通过两种方式运行 Jupyter Notebook:

    1. 通过命令行打开 Jupyter Notebook。
    2. 在 Windows 桌面上添加快捷方式,通过快捷方式打开 Jupyter Notebook。

    这两种方式的区别在于,通过 Anaconda 命令行打开 Jupyter Notebook 时,启动的是 Anaconda 中当前激活的环境下安装的 Jupyter Notebook;而通过桌面快捷方式打开 Jupyter Notebook 时,启动的是指定环境下 Anaconda 中安装的 Jupyter Notebook。

    为了更好地理解这个问题,以下是各个文件路径的具体解释:

    • C:\Anaconda3\python.exe 是 Anaconda 配备的 Python 解释器执行文件的路径。
    • C:\Anaconda3\cwp.py 是一个用于改变当前工作路径到指定路径的脚本文件。
    • C:\Anaconda3\envs\env_name 是指向指定环境的路径。
    • C:\Anaconda3\Scripts\jupyter-notebook-script.py 是用于启动 Jupyter Notebook 的 Python 脚本文件。
    • %USERPROFILE% 是指向当前用户主目录的路径。

    通过命令行进入到 Anaconda Prompt 界面后(或者直接使用 PowerShell/CMD),输入 “jupyter-notebook” 命令,系统会自动在当前激活的 Anaconda 环境下寻找 Jupyter Notebook,并启动它。所以在这种情况下,无需使用 cwp.py 脚本文件、env_name 环境路径和 jupyter-notebook-script.py 路径来指定环境和启动脚本。

    但是,如果你想从桌面上的快捷方式来启动 Jupyter Notebook,就需要指明你想运行哪个环境中的 Jupyter Notebook。为了做到这一点,快捷方式需要知道:

    • Python 解释器的位置(即 C:\Anaconda3\python.exe);
    • 切换环境的脚本位置(即 C:\Anaconda3\cwp.py);
    • 想要使用的环境的位置(即 C:\Anaconda3\envs\env_name);
    • 启动 Jupyter Notebook 的 Python 脚本位置(即 C:\Anaconda3\Scripts\jupyter-notebook-script.py);
    • 用户主目录的位置(即 %USERPROFILE%)。

    因此,在使用桌面快捷方式启动 Jupyter Notebook 时,快捷方式实际上是通过执行如下命令来打开它的:

    C:\Anaconda3\python.exe C:\Anaconda3\cwp.py C:\Anaconda3\envs\env_name C:\Anaconda3\Scripts\jupyter-notebook-script.py %USERPROFILE%
    

    这会激活指定环境,并在该环境下启动 Jupyter Notebook 执行服务。

    例如,博主的路径如下,这里D:\Coding\Anaconda3就是默认的python环境;

    D:\Coding\Anaconda3\python.exe D:\Coding\Anaconda3\cwp.py D:\Coding\Anaconda3 D:\Coding\Anaconda3\python.exe D:\Coding\Anaconda3\Scripts\jupyter-notebook-script.py "%USERPROFILE%/"
    
  • 如何修改通过快捷方式打开的Jupyter的启动目录

    1. 打开快捷方式文件夹,右键单击要修改的快捷方式图标,并选择 “属性”。

    2. 在 “快捷方式” 选项卡下,找到 “目标” 字段,目标内的命令如下,%USERPROFILE%有没有双引号包含都不影响;

      C:\Anaconda3\python.exe C:\Anaconda3\cwp.py C:\Anaconda3\envs\env_name C:\Anaconda3\Scripts\jupyter-notebook-script.py %USERPROFILE%
      
    3. %USERPROFILE%完全替换为你设定的启动目录的路径,引号不影响。

      image-20230423160732799

    4. 点击 “应用” 按钮保存修改,并退出 “属性” 窗口就大功告成了。

界面汉化

网上界面汉化的教程一大堆,什么改配置文件、新增用户变量、启动命令后面加--NotebookApp.locale=zh_CN指定语言环境,试过都没有效果,不过也不知道是不是我电脑环境的问题,这个没有排除…

但是好像安装扩展库就可以,不过这个也有待确认,琢磨了很久,没琢磨明白,全是坑…

知道的网友可以留言告诉我一下具体咋汉化…

Jupyter notebook和IDE的适用场景

Jupyter适用场景: 数据处理与分析:

  1. 数据可视化:Jupyter提供了交互性良好的可视化环境,使得数据探索变得更加简单直观。
  2. 机器学习建模:通过使用Jupyter Notebook进行数据预处理、特征工程和模型训练等步骤,提高建模效率和模型的准确性。
  3. 数据清洗:利用Jupyter进行数据分析和数据清洗,对于大量数据清洗工作尤为有效。
  4. 数据分析:Jupyter交互式的环境使得数据分析变得更加方便,运行代码并马上看到结果。
  5. 统计分析:Jupyter支持Python中常用的统计分析库,如NumPy、SciPy、pandas和statsmodels等。
  6. 可重复研究:借助Jupyter的notebook功能,将实验过程记录下来并共享给同事或者社区用户,利于可重复性研究。
  7. 实时数据流分析:使用Jupyter和Kafka结合,对大数据进行实时数据流分析和可视化展示。
  8. 巨大的数据集可视化:使用Jupyter和Dask等库,能够将大规模数据集转换成可视化展现的图表,便于用户理解。
  9. 研究证明:许多科学家和研究人员都使用Jupyter作为探索性研究的工具,非常方便快捷。
  10. 自然语言处理:利用Jupyter Notebook进行各种自然语言处理任务,如文本处理、词向量生成等。

IDE适用场景: 项目开发:

  1. 代码重构:IDE提供了更多的辅助手段,如代码补全、代码格式化、自动调试等,提高代码重构的效率。
  2. 大型项目开发:IDE支持更加复杂的文件组织、项目管理和版本控制,能够满足大型项目的需求。
  3. 单元测试和集成测试:IDE内置了一些调试工具,如单元测试器和集成测试工具,能够帮助开发者更加快速地定位和解决问题。
  4. API开发:IDE支持RESTful API的开发,利于接口设计、测试和文档编写。
  5. 可视化界面开发:IDE中支持窗体设计器等工具,快速创建并完成可视化界面的开发。
  6. 桌面软件开发:IDE支持Python GUI开发库(如Tkinter、WxPython等),有助于在Python中构建桌面应用程序。
  7. Web应用程序开发:通过使用IDE和Flask、Django等Web框架,可以更快地搭建和开发Web应用。
  8. 数据库应用:IDE支持数据库操作,利于程序与RDBMS或NO-SQL数据库的交互。
  9. 多人协同开发:IDE支持代码版本控制和代码托管,方便团队进行代码协同开发。
  10. 代码重用:代码重用是提高开发效率的重要手段,IDE中支持打包、发布和分享代码库,加速代码编写。

Jupyter notebook和IDE的适用项目类型与举例

Jupyter Notebook 适合的项目

  1. 数据科学、机器学习和人工智能等领域的项目:

    这些项目通常需要处理大量的数据,进行数据预处理、数据可视化、模型开发和评估。使用Jupyter Notebook 可以提供交互式环境,方便数据科学家和机器学习工程师们快速实验和迭代模型,同时也支持将代码、注释和可视化结果整合为一个文档来展示。

    例如:使用 Scikit-learn 对鸢尾花数据集进行分类模型的开发和评估。

  2. 探索性编程和原型开发等项目:

    这些项目需要快速验证代码方案,协作与分析的过程中也可能需要频繁地共享代码和文档。使用Jupyter Notebook 可以轻松地实现代码与文档的交互,同时支持 Markdown 和 Latex 等格式的文档展示(即所谓的 NBconvert),使得代码、注释、结果和文档可以整合在一起,方便团队成员协作和项目管理。

    例如: 使用 Flask 开发一个简单的 Web 应用程序,可以先使用 Jupyter Notebook 原型化实现,再使用 IDE 进行后期开发。

  3. 教学和演示方面的项目:

    Jupyter Notebook 可以将代码、注释和结果整合到一起作为一个交互式文档来展示和分享。这使得它成为一个出色的教学工具,可以用于讲解和展示数据相关的主题,并且可以通过 Markdown 和 Latex 等格式进行细致的排版和思路展现。

    例如:编写一个数据科学教学笔记,包括数据集介绍、数据分析过程、可视化展示和建模流程。

IDE 适合的项目

  1. 大型 Python 应用程序的开发:

    IDE 适合处理大型项目,具有更好的代码组织、架构、调试和性能优化的支持,可以帮助开发者更好地管理和维护大型项目。

    例如:使用 Django 框架开发一个复杂的 Web 应用程序。

  2. 调试、测试和性能优化等方面的项目:

    IDE 提供了强大的断点调试和测试支持,同时也提供了性能分析和优化的工具,有利于在长时间运行、高并发等场景下进行性能优化和问题排查。

    例如:使用 PyCharm 进行 Python 代码的 debug 和 CPU profiling。

  3. 持久化,部署和集成等方面的项目:

    IDE 支持 Python 代码的打包、发布、版本控制和持续集成,具有更好的生产力,可以帮助开发者更好地部署和管理项目。

    例如: 使用 Visual Studio 打包和发布 Python 应用程序到云上。

  4. 需要使用 Python 高级功能和库的项目:

    IDE 提供了更丰富的编辑器支持以及各种第三方插件,可以轻松处理并行计算、多线程处理、异步编程、机器学习框架等高级功能和库。

    例如:使用 PyTorch 或 TensorFlow 框架进行深度学习模型的开发和训练。

jupyter notebook安装Nbextensions不显示问题

伴随这个问题有一个报错,就是启动jupyter notebook后,命令窗口报错404 GET /static/components/marked/lib/marked.js

解决办法:

来到python安装目录:

Lib\site-packages\nbclassic\static\components\marked\lib\

找到marked.umd.js,直接复制并重命名marked.js,重启jupyter notebook。

上一个单元格导的包下一个单元格可以使用吗

可以使用。

在 Jupyter 中,如果一个单元格中导入了某个 Python 包,那么下一个单元格是可以直接使用该包的。这是因为在 Jupyter 中,所有单元格都运行在同一个 Python 内核中,所以它们之间可以共享变量、函数和模块等资源。

需要注意的是,如果您在导入模块时发生了错误,比如因为模块不存在或者路径设置不正确等原因,后续的单元格也会受到影响。此外,如果您使用了一些需要进行初始化的模块,比如 TensorFlow 或者 PyTorch 等深度学习框架,建议您在每个单元格开头手动进行初始化操作,以避免出现意外的错误。

如果您遇到了模块无法被正确导入的问题,可以尝试在单元格中手动添加 sys.path,将需要导入的模块所在的路径加入到 sys.path 中。例如:

import sys
sys.path.append('/path/to/module/')  # 将模块所在的路径添加到 sys.path 中
import module_name  # 导入模块

jupyter中单元格之间的关系

在Jupyter Notebook中,单元格是最基本的单位,用户可以在其中编写代码、插入文本、图像、表格等内容,每个单元格可以看作是一个独立的小程序。这些单元格之间存在着以下几种关系:

  1. 执行顺序:Jupyter Notebook中的单元格按照它们的位置逐一执行,从上至下逐个执行。如果用户将一个循环拆分成两个单元格,那么第二个单元格就无法访问第一个单元格定义的变量,也就无法正确执行循环。
  2. 依赖关系:有时候一个单元格可能需要另一个单元格的输出结果来进行计算或者展示,这时候就需要通过"Shift+Enter"运行前一个单元格以产生输出结果,再运行当前单元格以完成计算或者展示。如果前一个单元格没有被执行或者输出结果不符合要求,会导致当前单元格出现错误。
  3. 顺序依赖性:有些单元格必须以特定的顺序执行,否则会出现错误。例如,在创建一个图表时,必须先定义图表的数据,然后才能使用数据绘制图表。

原文地址:https://blog.jiumoz.com/archives/yi-wen-nong-dong-jupyter-de-pei-zhi-yu-shi-yong–ou-xin-li-xue-ban-

欢 迎 关 注 博 主 个 人 小 程 序!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/14397.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【WinForm】Android手机群控工具-桌面程序开发实现

如何将手下多个Android手机统一管理起来呢&#xff0c;这里是用通过终端输入adb命令来实现控制多个手机的&#xff0c;具体怎么做&#xff0c;接下来给讲一讲。 使用adb工具包 首先&#xff0c;需要准备一套工具&#xff0c;以下是adb工具套件&#xff0c;是在Android SDK开发…

5天学会Linux C高级

day1 用C语言的理论知识点去推断结果 需求&#xff1a;让面试官知道你懂这个内容 一、C语言补充内容 【1】结构体补充内容&#xff1a; 1&#xff09;结构体.等法 结构体.等法代码 #include <stdio.h> struct student { int num; float score; char name[32…

Rust之泛型、特性和生命期(一):基本概念

开发环境 Windows 10Rust 1.69.0 VS Code 1.77.3 项目工程 这里继续沿用上次工程rust-demo 泛型、特性和生命期 每种编程语言都有有效处理概念重复的工具。在Rust中&#xff0c;一个这样的工具就是泛型&#xff1a;具体类型或其他属性的抽象替身。我们可以表达泛型的行为或…

【世界读书日】2023年通信好书推荐

今天是世界读书日&#xff08;4月23日&#xff09;。按照老规矩&#xff0c;小编给大家推荐一些通信类的优秀书籍。 过去一年&#xff0c;通信行业的关注热点&#xff0c;主要是&#xff1a;5G-Advanced&#xff08;5.5G&#xff09;、算力网络、东数西算、6G、卫星互联网、智…

如何正确高效地学习android开发?

每一个能成为行业大佬的人&#xff0c;一定有自己独特的方法… 之所以能成为大佬&#xff0c;是因为他们会有自己独特的见解&#xff0c;在一次次的尝试中不断否定&#xff0c;然后一次次的确定&#xff0c;一个程序员想要精益求精&#xff0c;必须要有高效的学习方法和良好的…

历史上的今天大事件查询工具推荐 - 历史上的今天 API

引言 历史上的今天&#xff0c;总会有一些特别的事件发生&#xff0c;这些事件对人类的发展产生了深远的影响。想要了解这些事件&#xff0c;往往需要花费大量的时间和精力去查阅历史资料。但现在&#xff0c;有了历史上的今天 API&#xff0c;一切变得方便了许多。 如果你对…

3年外包终上岸,我只能说这类公司能不去就不去····

我大学学的是计算机专业&#xff0c;毕业的时候&#xff0c;对于找工作比较迷茫&#xff0c;也不知道当时怎么想的&#xff0c;一头就扎进了一家外包公司&#xff0c;一干就是3年。现在终于跳槽到了互联网公司了&#xff0c;我想说的是&#xff0c;但凡有点机会&#xff0c;千万…

SAP KANBAN 从入门到放弃系列之调拨模式

之前已经有三篇文章写了后台配置相关的介绍&#xff0c;这里不赘述。详见&#xff1a; PP-KANBAN-看板概述 SAP KANBAN 从入门到放弃系列之生产补货模式 SAP KANBAN 从入门到放弃系列之采购补货模式 第一步&#xff1a;补货策略-转库。不同的补充策略的控制类型有不同的作用…

6.3 收敛性与稳定性

6.3.1 收敛性 数值计算方法的收敛性是指&#xff0c;当取步长趋近于零时&#xff0c;数值解趋近于精确解的速度。一般来说&#xff0c;数值计算方法的收敛性是判断其优劣的重要指标之一。 数值计算方法的收敛性可以通过数学分析来研究&#xff0c;一般需要对数值解和精确解之…

淘宝天猫数据分析:2023年健康养生三大品类数据分析

随着人们健康意识的不断增强&#xff0c;越来越多的年轻人都开始加入养生大军的队伍中&#xff0c;我国的健康养生产业也迎来了发展机遇。 在天猫平台上&#xff0c;养生茶、养生壶和滋补养生原料是养生市场的几大重点类目&#xff0c;接下来&#xff0c;结合鲸参谋电商数据分析…

【论文笔记】VideoGPT: Video Generation using VQ-VAE and Transformers

论文标题&#xff1a;VideoGPT: Video Generation using VQ-VAE and Transformers 论文代码&#xff1a;https://wilson1yan. github.io/videogpt/index.html. 论文链接&#xff1a;https://arxiv.org/abs/2104.10157 发表时间&#xff1a; 2021年9月 Abstract 作者提出了…

Java 之 String、StringBuffer与StringBuilder 区别

String String 是被 final 修饰的类&#xff0c;不能被继承&#xff1b;String实现了 Serializable 和Comparable接口&#xff0c;表示String支持序列化和可以比较大小&#xff1b;String底层是通过char类型的数据实现的&#xff0c;并且被final修饰&#xff0c;所以字符串的值…

Discourse Google Analytics 3 的升级提示

根据 Google 官方的消息&#xff1a; Google Analytics&#xff08;分析&#xff09;4 是我们的新一代效果衡量解决方案&#xff0c;即将取代 Universal Analytics。自 2023 年 7 月 1 日起&#xff0c;标准 Universal Analytics 媒体资源将停止处理新的命中数据。如果您仍在使…

camunda流程引擎receive task节点用途

Camunda的Receive Task用于在流程中等待外部系统或服务发送消息。当接收到消息后&#xff0c;Receive Task将流程继续执行。Receive Task通常用于与Send Task配合使用&#xff0c;以便流程可以在发送和接收消息之间进行交互。 Receive Task可以用于以下场景&#xff1a; 1、等…

abaqus和ansys做仿真哪个更好

当你要模拟仿真一个机械模型时&#xff0c;通常会听到ABAQUS或ANSYS&#xff0c;最常见的问题是哪个更好&#xff1f;无论是工程设计师还是初学者&#xff0c;通常会问这个问题或类似的问题。在本文中介绍了 Abaqus 与 Ansys&#xff0c;您将了解这些问题的答案。 1-ANSYS&…

C++类与对象—上

本期我们来学习类与对象 目录 面向过程和面向对象初步认识 类的引入 访问限定符 类的定义 封装 类的作用域 类的实例化 this指针 C语言和C实现Stack的对比 面向过程和面向对象初步认识 C 语言是 面向过程 的&#xff0c; 关注 的是 过程 &#xff0c;分析出求解问题的…

ajax写法和json的知识点

1. JQuery方式来实现AJAX 1.1 $.ajax()方式来实现AJAX 语法&#xff1a;$.ajax(url,[settings]);但是我们一般这么写$.ajax({键值对});。 $.ajax()来实现ajax的案例&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"…

第二十六章 案例TodoList 之实现Footer组件

本小节&#xff0c;我们来实现最后的Footer组件的功能&#xff0c;它的功能主要有&#xff1a; 记录已完成和全部的任务列表数量点击【复选框】可以实现全选和全不选点击【删除已完成】按钮&#xff0c;可以将选中的任务项删除掉 实现已完成和全部的任务列表数量 步骤1&#…

OJ刷题 第十二篇

21308 - 特殊的三角形 时间限制 : 1 秒 内存限制 : 128 MB 有这样一种特殊的N阶的三角形&#xff0c;当N等于3和4时&#xff0c;矩阵如下&#xff1a; 请输出当为N时的三角形。 输入 输入有多组数据&#xff0c;每行输入一个正整数N&#xff0c;1<N<100 输出 按照给出…

【技巧】如何修改PDF文件?

PDF文件格式安全、标准化&#xff0c;很多人在工作中几乎离不开。可有些小伙伴想要修改PDF文件内容时&#xff0c;发现无法修改&#xff0c;那是什么情况呢&#xff1f;如何才能修改PDF文件呢&#xff1f;下面小编就来分享一些小技巧。 技巧一&#xff1a;使用PDF编辑器 如果使…
最新文章