对gtx图像进行操作,使用numpy知识
如果让gtx这张图片在竖直方向上进行颠倒。
如果让gtx这张图片左右颠倒呢?
如果水平和竖直方向都要颠倒呢?
如果需要将gtx的颜色改变一下呢?
每隔5行数据取一行,列全取,显示的图片会如何呢?图片只剩一部分了
每隔5列取一列,行全取,显示的图片会如何?
马赛克一下?还可以更夸张地马赛克。
接近于岛国爱情动作片的马赛克了
还可以修改颜色值。
好了,接下来学习pandas模块了。
什么是pandas?
· Python Data Analysis Library 或 pandas 是基于numpy的一种工具,该工具是为了解决数据分析任务而创建的
· pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具(用excel打开一个500M的文件,非常耗时,更大的可能就打不开了)(用pandas可以打开2G的CSV格式的文件,CSV文件是可以用EXCEL打开的)。
· pandas提供了大量能使我们快速便捷地处理数据的函数和方法
· 它使Python成为强大而高效的数据分析环境的重要因素之一
· Series 是一个类似数组的数据结构
· DataFrame 数据框,类似于Excel,DataFrame组织数据,处理数据
Pandas的数据结构
导入pandas:
数据分析三剑客:numpy,serise,matplotlib
1、Series
Series是一种类似于一维数组的对象,由下面两个部分组成:
· values:一维数组(ndarray类型)
· index:相关的数据索引标签
1) Series的创建
两种创建方式:
(1)由列表或numpy数组创建
默认索引为0-n-1的整数型索引
第一列数值就是索引。
还可以通过设置index参数指定索引
需要注意:索引的个数要和元素的个数对应,因为二者是一一对应的关系。
nd如果是多维的该如何?
报错了,说明Series中存放的数据必须是一维的。切记!
特别的,由ndarray创建的是引用,而不是副本。对Series元素的改变会改变原来的ndarray对象中的元素。(列表没有这种情况)
(2)由字典创建
练习1:
使用多种方法创建以下Series,命名为s1
语文 150
数学 150
英语 150
理综 300
因为字典的元素是无序的,所以s1中的顺序就不一定是什么了。如果元素的顺序比较重要,就不要用这种方法了。
2) Series的索引和切片
可以使用中括号取单个索引(此时返回的是元素类型),或者中括号里一个列表取多个索引(此时返回的仍然是一个Series类型)。分为显式索引和隐式索引:
(1)显式索引:
- 使用index中的元素作为索引值
- 使用.loc[](推荐)
注意:此时是闭区间
(2)隐式索引:
- 使用整数作为索引值
- 使用.iloc[](推荐)
注意:此时是半开区间
(3)切片
显式切片
隐式切片
3) Series的基本概念
可以把Series看成一个定长的有序字典
可以通过shape,size,index,values等得到series的属性
s.values的类型就是ndarray
有了索引之后更方便
百度就是网站的索引
可以通过head()/tail()快速查看Series对象的样式,显式前/后几行。
可见DataFrame是由Series组成的。
当索引没有对应的值时,可能出现缺失数据显示NaN (not a number) 的情况
二者不相等啊。
可以使用pd.isnull()、pd.notnull()或自带isnull()、notnul()函数检测缺失数据
因为null类型的数据是没有办法参与运算的,可以用如下方法把null类型的元素剔除掉。当数据量比较大的时候就用得着了,不能人工逐个判断了。
Series对象及其实例都有一个name属性。
4) Series的运算
(1)适用于numpy的数组运算也适用于Series
如果 c、d 的NaN也想加上 10 可以尝试如下操作:
(2)Series之间的运算
· 在运算中自动对齐不同索引的数据
· 如果索引不对应,则补NaN
注意:想要保留所有的index,则需要使用.add()函数。
===========
练习:
1:想一想Series运算和ndarray运算的规则有什么不同?
2:新建另一个索引包含“文综”的Series s2,并与s2进行多种算术操作。思考如何保存所有数据。