import numpy as np
Numpy 一元函数
对ndarray中的数据执行元素级运算的函数
np.abs(x) np.fabs(x) 计算数组各元素的绝对值
np.sqrt(x) 计算数组各元素的平方根
np.square(x) 计算数组各元素的的平方
np.log(x) np.log10(x) np.log2(x) 计算数组各元素的自然对数,10底对数和2底对数
np.ceil(x) np.floor(r) 计算数组各元素的ceiling值或floor值
np.rint(x) 计算数组各元素的四舍五入值
np.modf(x) 将数组各元素的小数和整数部分以两个独立数组形式返回
np.cos(x) np.cosh(x) np.sin(x) np.sinh(x) np.tan(x) np.tanh(x)
计算数组各元素的的普通型和双曲型三角函数
np.exp(x) 计算数组各元素的的指数值
np.sign(x) 计算数组各元素的的符号值,1(+),0,-1(-)
np.savetxt(frame,array,fmt='%.18e',delimiter=None)
frame:文件,字符串或产生器,可以是.gz或.bz2的解压文件
array:存入文件的数组
fmt:写入文件的格式,例如:%d %.2f %.18e
delimiter:分割字符串,默认是任何空格
例:
a = np.arange(100).reshape(5,20) np.savetxt("a.csv",a,fmt='%d',delimiter=',')
np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
frame:文件,字符串或产生器,可以是.gz或.bz2的解压文件
dtype:数据类型,可选
delimiter:分割字符串,默认是任何空格
nupack:如果True,读入属性将分别写入不同变量
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:数据分割字符串,如果是空字符串,写入文件为二进制
需要注意:
给方法需要读取是知道存入文件是数组的维度和元素类型
a.tofile() 和 np.framfile() 需要配合使用
可以通过元数据文件来存储额外信息
NumPy的便捷文件存储
np.save(fname,array)
np.savez(fname,array)
frame:文件名,以.npy为扩展名,压缩扩展名为.npz
array:数组变量
np.load(fname)
---------------------------------------------------------------------
NumPy的随机数函数
random子库
np.random
np.random.rand(d0,d1,...,dn) # 根据d0到dn创建随机数数组,浮点数,[0,1),均匀分布
np.random.randn(d0,d1,...,dn) # 根据d0到dn创建随机数数组,标准正态分布
np.random.randint(low[,high,shepe]) # 根据shape创建随机整数或整数数组,范围是[low,high)
seed(s) # 随机数种子,s是给定的种子值
shuffle(a) # 根据数组a的第一轴进行随排列,改变数组x
permytation(a) # 根据数组a的第一轴产生一个新的乱序数组,不给变数组x
choice(a[,size,replace,p]) # 从一维数组a中以概率抽取元素,形成size形状新数组replace表示是否可以重用元素,默认为False
nuiform(low,high,size) # 产生具有均匀分布的数组,low起始值,high结束值,size形状
normal(loc,scale,size) # 产生具有正态分布的数组,loc均值,scale标准差,size形状
poisson(lam,size) # 产生具有泊松分布的数组,lam随机事件发生率,size形状
-----------------------------------------------------------------------
Numpy 直接提供的统计类函数
np.random的统计函数
sum(a,axis=None) # 根据给定轴axis计算数组a 相关元素之和,axis整数或元组
mean(a,axis=None) # 根据给定轴axis计算数组a 相关元素的期望,axis整数或元组
average(a,axis=None,weights=None) # 根据给定轴axis计算数组a 相关元素的加权平均值
std(a,axis=None) # 根据给定轴axis计算数组a 相关元素的标准差
var(a,axis=None) # 根据给定轴axis计算数组a 相关元素的方差
2:
min(a) max(a) #计算数组a中元素的最小值,最大值
argmin(a) argmax(a) #计算数组a中元素最小值,最大值的降一维后下标
unravel_index(index,shape) #根据shape将一位下标index转换成多维下标
ptp(a) #计算数组a中元素最大值与最小值的差
median(a) #计算数组a中元素的中位数(中值)
---------------------------------------------------------------------------------------------
NumPy的梯度函数
np.gradient(f) 计算数组f中元素的梯度,当f多维时,返回每个维度梯度
梯度:连续值之间的变化率,即斜率
XY坐标轴连续三个X坐标对应的y轴值:a,b,c,其中,b的梯度是:(c-a)/2
-------------------------------------------------------------------------------------
小结:
数据存取与函数
CSV文件
np.loadtxt()
np.savetxt()
多维数据存取
a.tofile()
np.framfile()
np.save()
np.savez()
np.load()
随机函数
np.random.rand()
np.random.randint()
np.random.shuffle()
np.random.choice()
np.random.randn()
np.random.seed()
np.random.permytation()
NumPy的统计函数
np.sum()
mp.mean()
np.average()
np.std()
np.var()
np.median()
np.min()
np.max()
np.argmin()
np.argmax()
np.unravel_index()
np.ptp()
NumPy的梯度函数
np.gradient()
--------------------------------------------------------------------------------------
梯度的重构
利用像素之间的梯度值和虚拟深度值对图像进行重构
根据灰度变化来模拟人类视觉的明暗程度
图像的RGB色彩模式
图像一般使用RGB色彩模式,即每个像素点的颜色由红(R),绿(G),蓝(B)组成
R 取值范围,0-255
G 取值范围,0-255
B 取值范围,0-255
PIL库(Python Image Library)
一个具有强大图像处理能力的第三方库
from PIL import Image
Image 是PIL库中代表一个图像的类(对象)
图像是一个由像素组成的二维矩阵,每个元素是一个RGB