Python数据分析与展示笔记

能今天做好的事就不要等到明天。以梦为马,学习趁年华。

一、前言

1.1需要掌握的知识

掌握表示、清洗、统计和展示数据的能力

Python数据分析与展示笔记_第1张图片

​1.2编程工具

使用Anaconda IDE集成开发工具

需要理解和掌握如下工具的使用

conda

Spyder

IPython

二、Anaconda IDE的基本使用方法

2.1conda

一个工具,用于包管理和环境管理。

包管理与pip类似,管理Python第三方库。

环境管理能够允许用户使用不同版本Python,并能灵活切换。

conda将工具、第三方库、Python版本、conda都当作包,同等对待。

2.2anaconda

一个集合,包括conda、 某版本Python、 一批第三方库等。

2.3编程工具:Spyder

Python数据分析与展示笔记_第2张图片

​2.4IPython

它是一个功能强大的交互式shell,适合进行交互式数据可视化和GUI相关应用

IPython的%run命令

%run用于运行.py程序

注意: %run在一个空的命名空间执行%

IPython的%魔术命令

Python数据分析与展示笔记_第3张图片

​Python与IPython的区别

Python只是一个解释器,用户给一段输入,则它给一段输出。

IPython是一个能够调用核心的Python解释器的交互式环境,IPython只是前台的一个显示脚本,而对程序的执行是由后台的Python的内核执行。

三、Python语言开发工具选择

3.1文本工具类IDE介绍

IDLE

Notepad++

Sublime Text

Vim & Emacs

Atom

Komodo Edit

3.1.1IDLE

它是Python自带的、默认的、常用的入门级编写工具

适用于Python入门、功能简单直接、代码量小的需求

Python数据分析与展示笔记_第4张图片

​3.1.2Sublime Text

它是专门为程序员开发的第三方专用编程工具,具有专业的编程体验和多种编程风格

Python数据分析与展示笔记_第5张图片

​3.2集成工具类IDE

PyCharm

Wing

PyDev & Eclipse

Visual Studio

Anaconda & Spyder

Canopy

3.2.1通用类型

Wing

它是公司维护,工具收费的;调试功能丰富;版本控制,版本同步;适合多人共同开发

Python数据分析与展示笔记_第6张图片

​Visual Studio & PTVS

它是微软公司维护,Win环境为主,调试功能丰富的一款工具

Python数据分析与展示笔记_第7张图片

​Eclipse & PyDev

它是开源IDE开发工具,需要具备一定的开发环境

Python数据分析与展示笔记_第8张图片

​PyCharm

社区版免费简单,集成度高,适合较复杂工程

Python数据分析与展示笔记_第9张图片

​3.2.2科学计算&数据分析

Canopy

公司维护,工收费;支持近500个第三方库;适合科学计算领域应用开发

Python数据分析与展示笔记_第10张图片

​Anaconda

开源免费;支持近800个第三方库

Python数据分析与展示笔记_第11张图片

四、Numpy

4.1维度

一组数据的组织形式

一维数据;一维数据由对等关系的有序或无序数据构成,采用线性方式组织。

二维数据:二维数据由多个一维数据构成,是一维数据的组合形式。

多维数据:多维数据由一维或二维数据在新维度上扩展形成。

高维数据:高维数据仅利用最基本的二元关系展示数据间的复杂结构

4.2数据维度的Python表示

一维数组:列表和集合类型

​维数据:列表类型

多维数据:列表类型

​高维数据:字典类型或数据表示格式JSON、XML和YAML格式

​4.3Numpy的数组对象:ndarray

NumPy

NumPy是一个 开源的Python科学计算基础库。

一个强大的N维数组对象ndarray

广播功能函数

整合C/C++/Fortran代码的工具

线性代数、傅里叶变换、随机数生成等功能

NumPy是SciPy、Pandas等 数据处理或科学计算库的基础。

NumPy的引用

import numpy as np

N维数组对象: ndarray

数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据。

设置专门的数组对象,经过优化,可以提升这类应用的运算速度。

观察:科学计算中,一个维度所有数据的类型往往相同。

数组对象采用相同的数据类型,有助于节省运算和存储空间。

ndarray是一个多维数组对象,由两部分构成:

实际的数据

描述这些数据的元数据(数据维度、数据类型等)

ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始。

轴(axis):保存数据的维度

秩(rank):轴的数量

ndarray对象的属性

Python数据分析与展示笔记_第12张图片

​ndarray的元素类型

对比: Python语法仅支持整数、浮点数和复数3种类型

科学计算涉及数据较多,对存储和性能都有较高要求。

对元素类型精细定义,有助于NumPy合理使用存储空间并优化性能。

对元素类型精细定义,有助于程序员对程序规模有合理评估。

4.4ndarray数组的创建方法

从Python中的列表、元组等 类型创建ndarray数组

使用NumPy中函数创建ndarray数组,如: arange,ones, zeros等。

Python数据分析与展示笔记_第13张图片

从字节流( raw bytes )中创建ndarray数组。

从文件中读取特定格式,创建ndarray数组。

4.5ndarray数组的操作

索引:获取数组中特定位置元素的过程

切片:获取数组元素子集的过程

一维数组的索引和切片

与Python的列表类似

Python数据分析与展示笔记_第14张图片

​多维数组的索引和切片

Python数据分析与展示笔记_第15张图片

​4.6ndarray数组的运算

数组与标量之间的运算作用于数组的每一个元素

Python数据分析与展示笔记_第16张图片

4.7总结

数据的维度:一维、二维、多维、高维

ndarray类型属性创建和变换

数组的索引和切片

数组的运算:一元函数、二元函数

五、NumPy数据存取与函数

5.1保存CSV文件

np.savetxt(fname, array, fmt='%.18e', delimiter=None)

fname:文件、字符串或产生器,可以是.gz或.bz2的压缩文件。

array:存人文件的数组。

fmt:写入文件的格式,例如: %d %.2f %.18e。

delimiter:分割字符串,默认是任何空格。

​5.2写入CSV文件

np.loadtxt(fname, dtype=np.float, delimiter=None,unpack=False)

fname:文件、字符串或产生器,可以是.gz或.bz2的压缩文件。

dtype:数据类型,可选。

delimiter:分割字符串,默认是任何空格。

unpack:如果True, 读入属性将分别写入不同变量。

Python数据分析与展示笔记_第17张图片

Python数据分析与展示笔记_第18张图片

​5.3CSV文件的局限性

CSV只能有效存储一维和二维数组

np.savetxt() np.loadtxt()只能有效存取一维和二维数组

5.4多维数据的存取

a.tofile(firame, sep='format='%s')

fname:文件、字符串。

sep:数据分割字符串,如果是空串,写人文件为二进制。

format:写人数据的格式。

​5.5多维数组的读取

ap.fromfile(fname, dtype=float, count=-1,sep='')

fname:文件、字符串。

dtype:读取的数据类型。

count:读入元素个数,-1表示读入整个文件。

sep:数据分割字符串,如果是空串,写人文件为二进制。

需要注意:

该方法需要读取时知道存入文件时数组的维度和元素类型

a.tofileO和np.fromfile(需要配合使用

可以通过元数据文件来存储额外信息

5.6NumPy的便捷文件存取

np.save(fname, array)或np.savez(fname, array)

fname:文件名,以.npy为扩展名,压缩扩展名为.npz

array:数组变量

np.load(fname)

5.7NumPy的随机函数

NumPy的随机数函数子库

Python数据分析与展示笔记_第19张图片

​np.random的随机数函数

​5.8NumPy的统计函数

NumPy直接提供的统计类函数

Python数据分析与展示笔记_第20张图片

​np.random的统计函数

Python数据分析与展示笔记_第21张图片

​5.9NumPy的梯度

np.random的梯度函数

​梯度:连续值之间的变化率,即斜率。

Python数据分析与展示笔记_第22张图片

​5.10总结

5.10.1数据存取

Python数据分析与展示笔记_第23张图片

​5.10.1随机函数

Python数据分析与展示笔记_第24张图片

​5.10.1统计函数

Python数据分析与展示笔记_第25张图片

​5.10.1梯度函数

​六、图像的手绘效果

6.1图像库

PIL库:PIL, Python Image Library

PIL库是一个具有强大图像处理能力的第三方库

在命令行下的安装方法: pip install pillow

from PIL import Image

Image是PIL库中代表一个图像的类 (对象)

Python数据分析与展示笔记_第26张图片

图像是一个三维数组,维度分别是高度、宽度和像素RGB值。

6.2图像的变换

读入图像后,获得像素RGB值,修改后保存为新的文件。

Python数据分析与展示笔记_第27张图片

Python数据分析与展示笔记_第28张图片

​6.3图像的手绘效果实例分析

手绘效果的几个特征:

黑白灰色

边界线条较重

相同或相近色彩趋于白色

略有光源效果

Python数据分析与展示笔记_第29张图片

​6.4图像的手绘效果实例

6.4.1梯度的重构

利用像素之间的梯度值和虚拟深度值对图像进行重构

根据灰度变化来模拟人类视觉的明暗程度

​6.4.2光源效果

根据灰度变化来模拟人类视觉的远近程度

Python数据分析与展示笔记_第30张图片

●设计一个位于图像斜上方的虚拟光源

●光源相对于图像的俯视角为Elevation方位角为Azimuth

●建立光源对个点梯度值的影响函数

●运算出各点的新像素值

6.4.3梯度归一化

Python数据分析与展示笔记_第31张图片

​6.4.4图像生成

Python数据分析与展示笔记_第32张图片

​希望能够给对此感兴趣的小伙伴有所帮助。

需要完整PDF版本笔记的小伙伴在评论区留下“笔记”即可

你可能感兴趣的:(python,python,ide,sublime,text)