python 03数据分析
- 1、图像里的numpy数组
- 1.1、使用jupyter
- 1.2、导入图片
- 1.3、查看该图片的各项数据
- data.shape
- data.dtype
- data.max()、data.min()
- 1.4、先熟悉一下数组切片
- 1.5、通过数组改变图片
- 1.5.1、Image.fromarray()
- 1.5.2、plt.imshow()
- np.transpose
- np.concatenate
- 2、把数组保存成文件
1、图像里的numpy数组
1.1、使用jupyter
这里我在G盘根目录下打开了jupyter notebook
新建一个jupyter 文件
开始写代码,按Tab有代码提示功能
输入完成可以按住Ctrl+回车,当前内容就载入内存了(运行前你需要执行的内容都要载入内存才能成功运行)
成功载入内存的行会在【】里显示数字,未载入的里面是空的
点击In[] 变成蓝色框框后,可以按两下D,删除不需要的行,按
B可以在当前行下面新建一个行
1.2、导入图片
导入图形库
如果像我一样提示未安装这个库可以新打开一个cmd安装一下
打开一张图片
这里我的图片就放在g盘根目录下
查看这张图片的数据
1.3、查看该图片的各项数据
我们发现这张图片就是有一个三维数组组成的
三维:x,y,颜色(红、绿、蓝、透明度)
双击左边的Out[ ]可以收起
data.shape
查看data的形状可以发现这是一张宽326高302颜色位4的图片
data.dtype
是一个无符号的int8类型,也就是最大可以写 2的8次方:256,超出256就溢出了
data.max()、data.min()
之所以用uint8类型是因为颜色数值是0~255,所以256够用了
1.4、先熟悉一下数组切片
1.5、通过数组改变图片
1.5.1、Image.fromarray()
Image.fromarray(data)将array 数组转换成image图片
改变data:
data2 = data[:,:,::-1] 将颜色数据反序排列
data3 = data[::-1,:,:]将x轴反序排列,图片翻转了
data[::2,::2,:]在xy轴上隔两个数据切片,图片变小了
data[:,:,[1,0,2]]只改变颜色,把颜色值调换一下位置
data[:,:,0] 在红、绿、蓝、透明度,只要红的数值
1.5.2、plt.imshow()
导入绘图工具matplotlib
import matplotlib.pyplot as plt
显示一个带标尺的图片
变成马赛克
data[::5,::5]每隔五个行列取数据
np.transpose
np.transpose(data,axes = (1,0,2))把xy交换,transpose转置函数
data[:,:150],y只取0到150
np.concatenate
np.concatenate([data02,data01],axis=1),将data01和data02横向拼接,axis=1数据横向拼接
x 0 , y 1 ,颜色 2
这里不能axis=2,因为data竖向拼接后这个数据就不是一个图片数组格式了,如下
2、把数组保存成文件