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

python 把numpy数据存入txt numpy导入数据怎么导入_数组


新建一个jupyter 文件

python 把numpy数据存入txt numpy导入数据怎么导入_Image_02


开始写代码,按Tab有代码提示功能

python 把numpy数据存入txt numpy导入数据怎么导入_数组_03


输入完成可以按住Ctrl+回车,当前内容就载入内存了(运行前你需要执行的内容都要载入内存才能成功运行)

python 把numpy数据存入txt numpy导入数据怎么导入_Image_04


成功载入内存的行会在【】里显示数字,未载入的里面是空的

python 把numpy数据存入txt numpy导入数据怎么导入_数据_05


点击In[] 变成蓝色框框后,可以按两下D,删除不需要的行,按

B可以在当前行下面新建一个行

python 把numpy数据存入txt numpy导入数据怎么导入_数组_06

1.2、导入图片

导入图形库

python 把numpy数据存入txt numpy导入数据怎么导入_数组_07


如果像我一样提示未安装这个库可以新打开一个cmd安装一下

python 把numpy数据存入txt numpy导入数据怎么导入_数据_08


python 把numpy数据存入txt numpy导入数据怎么导入_数组_09


打开一张图片

这里我的图片就放在g盘根目录下

python 把numpy数据存入txt numpy导入数据怎么导入_数组_10


查看这张图片的数据

python 把numpy数据存入txt numpy导入数据怎么导入_Image_11

1.3、查看该图片的各项数据

我们发现这张图片就是有一个三维数组组成的

三维:x,y,颜色(红、绿、蓝、透明度)

双击左边的Out[ ]可以收起

python 把numpy数据存入txt numpy导入数据怎么导入_数组_12

data.shape

查看data的形状可以发现这是一张宽326高302颜色位4的图片

python 把numpy数据存入txt numpy导入数据怎么导入_数据_13

data.dtype

是一个无符号的int8类型,也就是最大可以写 2的8次方:256,超出256就溢出了

python 把numpy数据存入txt numpy导入数据怎么导入_Image_14

data.max()、data.min()

之所以用uint8类型是因为颜色数值是0~255,所以256够用了

python 把numpy数据存入txt numpy导入数据怎么导入_数据_15

1.4、先熟悉一下数组切片

python 把numpy数据存入txt numpy导入数据怎么导入_Image_16

1.5、通过数组改变图片
1.5.1、Image.fromarray()

Image.fromarray(data)将array 数组转换成image图片

改变data

data2 = data[:,:,::-1] 将颜色数据反序排列

python 把numpy数据存入txt numpy导入数据怎么导入_Image_17


data3 = data[::-1,:,:]将x轴反序排列,图片翻转了

python 把numpy数据存入txt numpy导入数据怎么导入_Image_18


data[::2,::2,:]在xy轴上隔两个数据切片,图片变小了

python 把numpy数据存入txt numpy导入数据怎么导入_Image_19


data[:,:,[1,0,2]]只改变颜色,把颜色值调换一下位置

python 把numpy数据存入txt numpy导入数据怎么导入_数据_20


data[:,:,0] 在红、绿、蓝、透明度,只要红的数值

python 把numpy数据存入txt numpy导入数据怎么导入_数据_21

1.5.2、plt.imshow()

导入绘图工具matplotlib

import matplotlib.pyplot as plt

显示一个带标尺的图片

python 把numpy数据存入txt numpy导入数据怎么导入_数据_22


变成马赛克

data[::5,::5]每隔五个行列取数据

python 把numpy数据存入txt numpy导入数据怎么导入_数据_23

np.transpose

np.transpose(data,axes = (1,0,2))把xy交换,transpose转置函数

python 把numpy数据存入txt numpy导入数据怎么导入_Image_24


data[:,:150],y只取0到150

python 把numpy数据存入txt numpy导入数据怎么导入_数组_25

np.concatenate

np.concatenate([data02,data01],axis=1),将data01和data02横向拼接,axis=1数据横向拼接

x 0 , y 1 ,颜色 2

python 把numpy数据存入txt numpy导入数据怎么导入_Image_26


这里不能axis=2,因为data竖向拼接后这个数据就不是一个图片数组格式了,如下

python 把numpy数据存入txt numpy导入数据怎么导入_数组_27

2、把数组保存成文件

python 把numpy数据存入txt numpy导入数据怎么导入_数组_28


python 把numpy数据存入txt numpy导入数据怎么导入_数组_29


python 把numpy数据存入txt numpy导入数据怎么导入_数据_30