一.数据的csv文件存取
CSV,Comma-Separated Value,逗号分隔符,CSV是一种常见的文件格式,用于存储批量数据,常用于存储一维和二维数据。
如下表所示,存储称为CSV文件后变成用逗号分隔的数据文件。


Numpy中有两个函数可以用来将文件写入CSV格式,并从CSV文件中读取数据。
将数据写入CSV文件
np.savetest(frame,array,fmt=’%.18e’,delimiter=None)
frame:文件,字符串或产生器,可以是**.gz或者.bz2**的压缩文件;
array:存入文件的数组;
fmt:写入文件的格式,例如:%d %.2f %.18e,这是用户主要修改的参数;
delimiter:分割字符串,默认是空格;
eg:


此外参考其他外部资料,发现delimiter默认为None时,未对数据进行分隔,且每一行的数据均存在同一表格中。
将数据文件读入Numpy
np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
frame:指定读入的文件来源,可以是文件,字符串或产生器,可以是**.gz或者.bz2**的压缩文件;
dtype:将CSV文件中的每一个元素由字符串变成一个特定的格式,使用dtype变量指定,数据类型可选;
delimiter:分隔字符串,默认是任何空格,CSV文件需要使用“,”作为分割字符串;
unpack:如果为True,读入属性将分别写入不同变量;


CSV文件的局限性
CSV文件只能有效存储一维或者二维数组,np.savetxt()和np.loadtxt()只能有效存取一维和二维数组。
二.多维数据的存取
写入数据
a.tofile(frame,sep=' ',format='%s')
frame: 文件、字符串
sep:分隔数据的字符串,如果是空串,即不指定分隔符,写入文件为二进制,二进制文件无法直接打开
format:写入数据的格式


如果不指定分隔符变量


读取文件
np.fromfile(frame,dtype=float,count=-1,sep=',')
frame:是文件
dtype:读取文件的时候指定要显示成的数据类型
count:要读入元素的个数,-1表示全部数据
sep:为要读取的文件的分隔符,如果文件是二进制文件,则sep为‘’空格
Tip:
①该方法需要读取时,知道存入文件时数组的维度和元素类型。
②a.tofile()与a.fromfile()需要配合使用
③可以通过元数据文件来存储额外信息

Numpy的便捷文件存取
1.存储文件
np.save(fname,array) 或np.savez(fname,array)
frame:文件名、以.npy为扩展名,压缩扩展名为.npz
array:数组变量
2.读取文件
np.load(fname)
frame:文件名,以.npy为扩展名,压缩名为.npz
三.Numpy的三种函数
- Numpy的随机函数
Numpy的random子库


eg:




eg:




2.Numpy的统计函数
numpy提供了库一级别的统计函数;因此可以在numpy库中直接调用。
轴(axis)的编号是对第几个维度计算统计值,对数组来讲最外层的维度是0。
sum(a,axis=None) 根据给定轴axis计算数组a相关的元素之和,axis整数或者元组。
mean(a,axis=None) 根据给定轴axis计算数组a相关元素的期望。
average(a,axis=None,weights=None) 根据给定轴axis计算数组a相关元素的加权平均值,不给定weights的时候是所有元素等权重计算;加权平均是每个元素乘以其权重然后除以权重之和。
std(a,axis=None) 根据给定轴axis计算数组a相关元素的标准差。
var(a,axis=None) 根据给定轴axis计算数组a相关元素的方差。
min(a) max(a) 计算数组a中元素的最小值、最大值。
argmin(a)、argmaax(a) 计算数组a中元素最小值、最大值在将数组变成一维后的位置。
unraval_index(index,shape) 根据shape将一维下标index转换成多维下标。
ptp(a) 计算数组a中元素最大值和最小值的差。
median(a) 计算数组a中元素的中位数,取中位数是运算,结果是浮点数。
3.Numpy的梯度函数
np.gradient(f) 计算数组f中元素的梯度,当f维多维的时候,返回每个维度的梯度。
梯度:连续值之间的变化率,即斜率。
一维数组某一元素的梯度维后一个元素减前一个元素后除以他们之间的距离,边界上的 元素为相邻两个元素之间差。
二维有两个梯度,横向和纵向。
四.图像的数组表示
图像的RGB色彩模式
图像一般使用RGB色彩模式,即每个像素点的颜色由红(R),绿(G),蓝(B)组成。
RGB三个颜色通道的变化和叠加得到各种颜色,三个色各自的取值范围是0-255。
RGB形成的颜色包括了人类视力所能感知的所有颜色。
PIL库
PIL:Python Image Library。一个具有强大图像处理能力的第三方库,在命令行下的安装方法:pip install pillow。如果安装了Anaconda,就包含了这个库,不用再安装。
from PIL import Image
Image是PIL库中代表一个图像的基础类(对象)。
图像的数组表示
图像是一个由像素组成的二维矩阵,每个元素是一个RGB值。
from PIL import Image
import numpy as np
im = np.array(Image.open("C:/Users/Administrator/Pictures/timg1.jpg"))
print(im.shape, im.dtype)
(1281, 1280, 3) uint8
可以看到,图像是一个三维数组,维度分别是高度、宽度和像素RGB值。
图像的变换
读入图像后,获得像素RGB值,修改后保存为新的文件。
既然图像可以用数组表示,数组又可以进行运算,运算后的数组就可以改变图像的形状。
步骤:
读入图像。
获得像素RGB值。
修改后保存为新的文件。



图像的手绘效果
手绘效果的特征:
黑白灰色
边界线条较重
相同或相近色彩趋于白色
略有光源效果
代码:
