文件操作
数据的csv文件的存取(一维或二维数组)
import numpy as np
np.savetxt(frame,array.fmt='%.18e',delimiter=None)
#frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
#array:存入文件的数组
#fmt:写入文件的格式,例如:%d %.2f %.18e
#delimiter:分割字符串,默认时任何空格
csv文件数据读入到numpy的数组类型中(一维或二维数组)
import numpy as np
np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=False)
#frame:文件、字符串或产生器,可以是.gz或.bz2的压缩文件
#dtype:数据类型,可选
#delimiter:分割字符串,默认时任何空格
#unpack:如果True,读入属性分别写入不同变量
从文本文件或二进制文件中还原数据
import numpy as np
np.fromfile(frame,dtype=float,count=-1,sep='')
#frame:文件、字符串
#dtype:读取的数据类型
#count:读入元素个数,-1表示读入整个文件
#sep:数据分割字符串,如果是空字串,写入文件为二进制
numpy的便捷文件存取
import numpy as np
np.save(fname,array) or np.savez(fname,array)
#frame:文件名,以.npy为扩展名,压缩扩展名为.npz
#array:数组变量
np.load(fname)
#frame:文件名,以.npy为扩展名,压缩扩展名为.npz
--------------------------------------------------------------分割线----------------------------------------------------------
numpy的随机数函数
import numpy as np
a = np.random.rand(3,4,5) #生成维度为(3,4,5),数值区间为[0,1)的随机数数组,均匀分布
a
array([[[0.63394149, 0.28966729, 0.63611511, 0.78016918, 0.19599468],
[0.93886965, 0.5077604 , 0.64635107, 0.29334663, 0.97381786],
[0.05472683, 0.98850136, 0.88245718, 0.32212938, 0.02006473],
[0.12897813, 0.56836393, 0.41214168, 0.66463788, 0.63539398]],
[[0.35328741, 0.66268993, 0.62673421, 0.87587754, 0.3222454 ],
[0.84176218, 0.64343764, 0.2694605 , 0.01058379, 0.55030771],
[0.72114232, 0.01948934, 0.02652867, 0.4742012 , 0.54522257],
[0.86986618, 0.37867356, 0.54525201, 0.97961991, 0.50335984]],
[[0.13317554, 0.6380611 , 0.12572216, 0.29611249, 0.727078 ],
[0.45974609, 0.12395676, 0.77638238, 0.05430556, 0.3638538 ],
[0.31615155, 0.65405036, 0.05494569, 0.93484136, 0.47582343],
[0.26961729, 0.32210147, 0.17187081, 0.45455539, 0.8792981 ]]])
--------------------------------------------------------------分割线---------------------------------------------------------
import numpy as np
a = np.random.randn(3,4,5) #创建随机数数组,标准正态分布
a
array([[[-2.12530987e-01, -8.99589571e-01, 1.55889825e+00,
4.88452296e-01, 4.11434479e-01],
[ 1.18130827e+00, 1.92736737e+00, 9.50150716e-01,
8.75598109e-01, 1.48891396e+00],
[ 1.02255802e+00, -3.33902434e-01, 2.81798899e-01,
6.65496833e-01, -1.96370579e-01],
[-4.07986215e-01, 8.58217989e-01, -1.01830362e+00,
5.14395336e-01, -1.26245984e-01]],
[[ 1.42065351e+00, -2.42147099e+00, 1.14885813e-03,
2.67506384e-01, 1.50822797e+00],
[-2.08128123e+00, 8.26800576e-02, 1.19007231e+00,
1.63902651e+00, 1.75132656e-02],
[-1.36982778e+00, 1.81191296e+00, 1.29191068e+00,
-1.05839514e+00, 6.46897204e-01],
[-2.40295649e-02, 1.37531191e+00, 5.78466058e-01,
2.37765630e+00, 6.49561600e-01]],
[[ 3.91776290e-02, 2.93146596e+00, -2.65603938e-01,
-2.68836276e-01, -1.10835457e+00],
[-1.68861051e+00, -2.72436532e-01, 8.14199166e-01,
5.18645080e-01, 2.44864339e-01],
[ 2.92698757e+00, 1.09205474e+00, 6.37052541e-01,
-3.96930926e-01, 3.58666682e-01],
[-4.48993889e-01, 4.80170123e-01, -1.61919620e+00,
-1.08789799e+00, 5.72295121e-01]]])
--------------------------------------------------------------分割线---------------------------------------------------------
import numpy as np
a = np.random.randint(100,200,(3,4)) #创建随机整数或整数数组,范围是[low,high)
a
array([[183, 114, 184, 156],
[172, 124, 159, 158],
[118, 108, 168, 145]])
--------------------------------------------------------------分割线---------------------------------------------------------
np.random.seed() #随机数种子,种子相同,产生的随机数相同
--------------------------------------------------------------分割线---------------------------------------------------------
np.random.shuffle(a) #表示根据数组a的第一轴进行随排列,改变原数组
np.random.permutation(a) # #表示根据数组a的第一轴进行随排列,不改变原数组
np.random.choice(a,(2,3),replace=True or False,p)
#从a数组随机选取元素,形状为(2,3),replace=True为默认值,会重复选取,修改成False则不会重复选取
#p为选取概率,例如p = a/np.sum(a)
np.random.uniform(low,high,size)
#产生具有均匀分布的数组,low起始值,high结束值,size形状
np.random.normal(loc,scale,size)
#产生具有正态分布的数组,loc为均值,scale为标准差,size形状
np.random.poisson(lam,size)
#产生具有泊松分布的数组,lam随机事件发生率,size形状
--------------------------------------------------------------分割线---------------------------------------------------------
np.argmin(a) or np.argmax(a) #计算数组a中元素最小值,最大值的降一维后下标
unravel_index(index,shape) #根据shape将一维下标index转化为多维下标
#如index = np.argmax(a),shape = a.shape
--------------------------------------------------------------分割线---------------------------------------------------------
numpy的梯度函数
np.gradient(f) #计算数组f中元素的梯度,当f为多维时,返回每个维度梯度
#梯度,即斜率,[a,b,c]中b的梯度,则用(c-a)/2得到,a的梯度用(b-a)/1得到