csv文件的存取
np.savetxt(frame,array,fmt='%.18e',delimiter=None)
#frame 储存的文件
#array 存入文件的数组
#fmt 格式
#delimiter 分割字数串,默认为任何空格
np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
#dtype 数据类型
#unpack 如果true,读入属性将分别写入不同变量
csv文件的局限性:只能有效储存一维和二维的数组。
多维数据的存取
a.tofile(frame,sep='',format='%s')#存
#sep 数据分割字符串,如果是空串,写入文件为二进制
#format 写入数据的格式
np.fromfile(frame,dtype=float,count=-1,sep='')
#count 读入元素的个数,-1表示读入整个文件
np.fromfile(frame,dtype=float,count=-1,sep='').reshape()
#example
import numpy as np
a = np.arange(100).reshape(5,2,10)
a.tofile("b.dat",format='%d')
c = np.fromfile("b.dat",dtype=np.int).reshape(5,10,2)
c
Out[8]:
array([[[ 0, 1],
[ 2, 3],
[ 4, 5],
[ 6, 7],....
该方法需要知道数据形状配合使用
Numpy的便捷文件存取
np.save(fname,array)
np.savez(fname,array)
# fname 文件名,以.npy为扩展名,压缩扩展名为.npz
np.load(fname)
Numpy的随机数函数子库
a = np.random.rand(3,4,5)#给出形状创建随机数组,浮点数[0,1),均匀分布
a
Out[10]:
array([[[0.98863006, 0.59356492, 0.90959873, 0.35555778, 0.26726061],
[0.71899316, 0.48492477, 0.87807753, 0.18993939, 0.37686292],
[0.55211193, 0.29356675, 0.95205621, 0.46749362, 0.52955914],
[0.79655755, 0.33558569, 0.26198164, 0.34796429, 0.53256343]],
[[0.40217525, 0.16705392, 0.58520181, 0.40980606, 0.63549491],
[0.922905 , 0.90131359, 0.21335087, 0.89911213, 0.95385787],
[0.61193198, 0.24527268, 0.85139651, 0.25918605, 0.71302254],
[0.79698114, 0.7536338 , 0.16610145, 0.52444195, 0.91451127]],
[[0.10506371, 0.27906337, 0.36412185, 0.2486292 , 0.87592111],
[0.3247165 , 0.21386185, 0.1101032 , 0.2183529 , 0.25219764],
[0.95398232, 0.19326858, 0.55062496, 0.98847794, 0.94461684],
[0.20057305, 0.6699867 , 0.77969555, 0.97458646, 0.70553038]]])
sn = np.random.randn(3,4)#标准正态分布
sn
Out[12]:
array([[-0.02687792, -0.39512838, -1.34767326, -0.97566586],
[ 0.23256712, 0.99327626, -1.35759331, 2.11837321],
[-0.99234139, 2.83294682, 1.40053845, 0.61687377]])
randint(low,high,(shape))
b = np.random.randint(100,200,(3,4))
seed(s)#随机数种子
np.random.seed(10)#第十号随机数列
np.random.shuffle(a)#根据数组a的第1轴进行随排列,改变数组
np.random.permutation(a)#蜂聚数组a的第1轴生成新乱序数组,不改变原数组
np.random.choice(a,size,replace,p)
#从a中以概率p抽取元素,形成size形状的新数组,replace表示能否用重复元素,默认True
np.random.uniform(low,high,size)#均匀分布
np.random.normal(loc,scale,size)#正态分布,loc均值,scale标准差
np.poisson(lam,size)#泊松分布,lam事件发生概率
Numpy的统计函数
np.sum(a,axis=None)#axis为给定轴
np.mean(a,axis=None)
np.average(a,axis=None,weights=None)#weights为加权平均
np.std(a,axis=None)#标准差
np.var(a,axis=None)#方差
np.min(a)
np.max(a)
np.argmin(a)#降一维后下标
np.argmax(a)
np.unravel_index(index,shape)#一维下标转化为多维下标
np.ptp(a)#极差
np.median(a)#中位数
np.gradient(f)#梯度函数,返回每个维度的梯度