CSV文件 用逗号分隔,是一种常见的文件格式,用来存储批量数据;csv是excel的文件格式
写入文件的函数
np.savetxt(fram,array,fmt='%.18e',delimiter=None)
frame: 文件、字符串或产生器,可以是.gz或者.bz2压缩文件(要写入的文件名)
array:存入文件的数组
fmt: format的缩写,指的是写入的数据的格式,例如 %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压缩文件
dtype:读取的文件以什么格式显示;默认为浮点数类型;
delimiter:指的是读入的过程中解析的分隔的字符串,即要读取的文件是以什么为分隔符的;csv文件为逗号
unpack:默认为false,读入的属性写入一个数组,如果为true会将读入的属性写入不同的数组变量
以上两个函数只能用于一维和二维数据;
多维数据的存取
a.tofile(frame,sep=' ',format='%s')
frame: 文件、字符串
sep:分隔数据的字符串,如果是空串,即不指定分隔符,写入文件为二进制,二进制文件无法直接打开
format:写入数据的格式
a=np.arange(100).reshape(5,10,2)
a.tofile('b.dat',sep=',',format='%d')
这个文件只是将所有数据列入文件中,不会指定其维度
读取文件:
np.fromfile(frame,dtype=float,count=-1,sep=',')
frame:是文件
dtype:读取文件的时候指定要显示成的数据类型
count:要读入元素的个数,-1表示全部数据
sep:为要读取的文件的分隔符,如果文件是二进制文件,则sep为‘’空格
读取后是一个一维数组,需要自己定义其形状;
因此读入文件会遗失其形状,因此使用这个方法需要指定数组的维度和元素的类型;
通常是在将一个多维数组写入文件的时候,将这个数组的类型和元素类型存储起来,在打开文件的时候可以读取这个文件知道这些信息;
便捷存取方法:
np.save(frame,array)或者 np.savez(frame,array)存压缩文件;
frame:文件名,必须以.npy为扩展名,压缩扩展名为.npz
array:数组变量
这种方法写入的是二进制,但是第一行是这个数组的形状和数据类型;
如果不想以这种文件个数存储,则采用上面的方法;
np.load(frame)
这种方法可以还原其形状;
numpy库的随机数函数
在python语言中的random库可以提供随机过程
np.random.函数名 :这是在numpy中使用随机函数的方法,即random是numpy的子库;
通过seed设定随机数种子后,在调用相同的随机数种子的时候,产生的随机结果将一样;
shuffle指改变最外围的 顺序;
uniform(low,high,(size))产生具有均匀分布的数组,其中low是起始值,high是结束值,size是形状
normal(loc,scale,size) 产生具有正态分布的数组,loc均值,scale标准差,size是形状
poisson(lam,size)产生泊松分布的数组,lam为事件发生的概率,
u=np.random.uniform(2,10,(2,3))
统计分析函数
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相关元素的方差
以上定义了一个二维的数组,当轴设为1的时候,是在第二位度进行运算,第二个维度是三个中括号里面的元素五个元素运算,
而轴设为0的时候,是在第一个维度进行运算,此时第一个维度的元素是三个中括号的三个元素,然后再对三个第一维度中第二维度对应位置的元素运算;
min(a) max(a) 计算数组a中元素的最小值、最大值
argmin(a)、argmaax(a) 计算数组a中元素最小值、最大值在将数组变成一维后的位置
unraval_index(index,shape) 根据shape将一维下标index转换成多维下标
ptp(a) 计算数组a中元素最大值和最小值的差
median(a) 计算数组a中元素的中位数,取中位数是运算,结果是浮点数
numpy的梯度函数
np.gradient(f) 计算数组f中元素的梯度,当f维多维的时候,返回每个维度的梯度
梯度:连续值之间的变化率,即斜率
一维数组某一元素的梯度维后一个元素减前一个元素后除以他们之间的距离,边界上的 元素为相邻两个元素之间差;
二维有两个梯度,横向和纵向;