数据存取与函数

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)#梯度函数,返回每个维度的梯度
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。