Python---numpy的学习笔记

第一周 数据分析之表示

一维,二维数组的存取

一维二维存取既可以使用下面介绍的多维数组的存取方式,也可以使用这里给出的savetxt,loadtxt
由于CSV只能有效存储一维和二维的数组,而savetxt,loadtxt一般用于CSV文件的读与取,所以这两个函数用于一维二维数组的读与取
存:savetxt()

np.savetxt(frame,array,fmt='%.18e',delimeter=None)
#frame:存入的文件或字符串名
#array:需要存入的数组
#fmt:存入数据的格式,%d,%f。。。。。
#delimeter:分割字符串,默认为空格

取:loadtxt()

loadtxt(frame,dtype=np.float,delimeter=None,unpack=False)
# frame:文件或字符串名
# dtype:读入后每个元素的格式
# delimeter:分隔符,默认为空格
#unpack:默认为false,读入数据值写入一个变量;当为true时,可写入多个变量

多维数组的存取

fromfile与tofile

a.tofile(frame,sep='',format='%s')
#frame:文件,字符串
#sep:数据分割字符串,如果是空串,写入文件为二进制
#format:写入数据的格式
#例:
a=np.arange(100).reshape(5,10,2)
#将a以十进制类型存入b.dat文件,元素间以,分割
a.tofile(b.dat,sep=',',format='%d')
#将a以二进制形式存入c.dat,占用空间更小
a.tofile(c.dat,frat='%d')


利用fromfile函数将数据从文件中读出,但原来的数组维度会丢失,需要使用reshape进行变换,以下为fromfile的使用方法及示例

np.fromfile(frame,dtype=float,count=-1,sep='')
#frame:文件,字符串
#dtype:读取的数据类型
#count:读入元素个数,-1表示读入整个文件
#sep:数据分割字数串(就是数据间的分隔符号),如果是空串写入文件为二进制
#例:
c=np.fromfile(b.dat,dtype=np.int,sep=',').reshape(5,10,2)

由于存取都需要知道数据的维度,所以常常单独写一个存储维度的文件

save,savez,load

这种方法存取更为简便,会保存数组的维度信息,但文件格式是numpy自定义的文件格式

np.save(fname,array)
np.savez(fname,array)
#savez以压缩方式存储
#frame:文件名,以.npy为扩展名,压缩扩展名为.npz
#array:数组变量
np.load(fname)
#读取文件
#例:
a=np.arrage(100).rashape(5,10,2)
np.save=('a.npy',a)
b=np.load('a.npy')

随机数

python中的random库可以提供随机数,而numpy中也有类似的random子库。
numpy的random字库有很多函数,最主要的函数有以下四种:rand,randn,randint,seed
主要的四种函数
在这四种函数里,rand与randn的参数d0,d1,d2指的是维度数(比如345的三维矩阵,d=3,d1=4,d3=5),seed需要和其他函数联用,作用和随机数表类似,只是每次从相同位置开始取数,详细参见这篇文章

举个例子:

a=np.randint(100,200,(3,4))
#产生范围在100~200的3*4的随机数组

除这四个基本函数外,同样还有其他函数,如下:

random库的其他函数
一下为使用的示例:
示例一
示例二
最后一张图中,p=b/np.sum(b)可以使越大的数被抽到的概率越大,而越小的数概率越小
此外,random同样有支持各种分布的随机数函数如下:
不同数学分布形式的函数

统计函数

numpy同样提供统计类的函数,可以实现元素和,期望值,加权平均值,标准差,方差等
常用统计函数
常用统计类函数二
示例:
统计类函数二的示例

梯度函数

梯度:连续值之间的变化率,即斜率
例:
xy坐标轴中,等距三个X坐标对应的Y轴值:a,b,c,则b的梯度为:(c-a)/2
numpy中只有唯一一个梯度函数gradient
gradient示例:
一维数组gradient示例
二维数组gradient的示例

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值