环境速配

Success

进行深度学习的时候我们一般不会直接使用本机环境直接安装python而是会通过conda管理环境、Jupyter noteBook编写代码

开发工具

Python

基础语言环境

PyCharm

IDE

jupyter notebook√

Tip

之后在深度学习应用开发上都是在Jupyter Notebook上即时编程测试

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

简而言之, Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

关联Jupyter Notebook和conda的环境和包——nb_conda。这是目前使用Jupyter Notebook的必备环节

参考文档:

为什么使用Jupyter Notebook

我们再开发python项目时,在普通的Python shell或者在IDE (集成开发环境)如Pycharm中写代码,然后在word中写文档来说明项目。
这个过程很繁琐,通常是写完代码,写文档的时候重头回顾一遍代码。有些数据分析的中间结果,还需要重新跑代码,然后把结果写到文档里给客户看。

conda

为什么要用Anaconda
  1. 解释器:进行深度学习,经常会因为版本兼容问题要切换到不同的python版本(Python2还是Python3?)进行开发和测试_Anaconda可以很方便的切换python环
  2. 包管理:深度学习会引入大量的第三方包,有了Anaconda能更好的获取和管理这些包
  • 一个能支持Python、R、Java、JavaScript、C等语言包、依赖和环境管理工具
  • 一个能在Windows、MacOS、Linux上运行开源的软件包管理系统和环境管理系统
  • 一个能在本地轻松创建、保存、切换环境

参考文档:

conda分为两个版本:

  • anaconda
  • miniconda

Anaconda和Miniconda都是Python语言的发行版管理器,它们的主要区别在于大小和功能:

  1. 大小:Anaconda是一个大型的Python发行版,包含了Python解释器、常用科学计算和数据分析的库和工具、以及一个用户界面,安装包的大小通常在几个GB以上。而Miniconda是一个轻量级的Python发行版,只包含了Python解释器和一个基本的包管理器,安装包的大小通常在几百MB到1GB之间。
  2. 功能:Anaconda拥有很多预安装的科学计算和数据分析工具,比如NumPy、SciPy、Pandas、Matplotlib等,以及一些常用的IDE和编辑器,如Spyder、Jupyter Notebook等。而Miniconda只包含最基本的工具,用户需要自己手动安装需要的库和工具。

因此,如果

  • 你需要一个完整的Python发行版,并且希望可以直接使用很多常用的科学计算和数据分析工具,那么Anaconda是一个很好的选择。
  • 但如果你只需要一个轻量级的Python解释器和一个基本的包管理器,可以自己选择需要的库和工具,那么Miniconda可能更适合你。

Python数学环境

清华镜像:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib

NumPy

Python 科学计算的基本包

基于C++底层实现的Python数组结构。

因为Python本身只提供列表(对数据类型没有限制,而且效率不高)。

主要区分:

  1. 数组中所有元素的数据类型是相同的。
  2. 底层经过充分优化的 C 语言代码,计算性能比高。
  3. 提供了全面的数学函数可以直接应用在数组上。

ScipPy

简而言之就是封装了大量数学运算的API

  • Scipy依赖于Numpy,使用的基本数据结构是NumPy模块
    提供的多维数组
  • NumPy提供了一些用于线性代数、傅里叶变换和随机数生成的函数,SciPy中也提供了,并且通用性更强,是高端科学计算工具包
  • Scipy包含的功能:最优化、线性代数、积刀、他且、J人、特殊函数、快速傅里叶变换、信号处理、图像处理、常
    微分方程求解器等

方程组求解

image-20220922095432319

Pandas

简介

Python的核心数据分析支持库。

提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据,其基础是Numpy(提供高性能的矩阵运算)

Pandas适用于处理以下类型的数据

  • 与SQL或Excel表类似的,含异构列的表格数据;
  • 有序和无序(非固定频率)的时间序列数据;
  • 带行列标签的矩阵数据,包括同构或异构型数据;
  • 任意其它形式的观测、统计数据集,数据转入Pandas 数据结构时不必事先标记

数据结构

Pandas数据结构就像是低维数据的容器。比如DataFrame是Series的容器,Series则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象

维数 名称 描述
1 Series 带标签的以为同构数组
2 DataFrame 带标签的,大小可变的,二维异构表格
  • series

    image-20220922103706777

  • dataframe

    image-20220922103827178

Series数据结构实例

image-20220922104448581

dataframe数据结构实例

image-20220922105753995

matplotlib

Matplotlib是一个Python的2D绘图库((当然也可以绘制3D,但是需要额外安装支持的工具包)) ,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形
只需几行代码就可以生成图表、直方图、功率谱条形图、误差图、散点图等

参考文档:

seaborn【基于matplotlib的演变】

scikit-learn

  • 是基于Python语言的机器学习工具
  • 简单高效的数据挖掘和数据分析工具
  • 可供大家在各种环境中重复使用
  • 建立在NumPy ,SciPy和matplotlib 上
  • 开源,可商业使用–BSD许可证。

参考文档: