NumPy数据存取与函数
一维与二维数据
CSV - Comma-Separated Value,逗号分隔值
用来存储一维、二维数据非常方便
np.array() 与np.asarray() 区别
np.asarray() 相当于引用, np.array() 相当于复制
np.savetxt(fname, array, fmt='%.18e', delimiter=None)
fname : 目的地址,文件、字符串或产生器,也可是.gz 或.bz2 压缩文件
array : 数据来源
fmt : 每个元素的格式
delimiter : 用来分隔的字符串,默认是空格
返回值 : 无
np.loadtxt(fname, dtype=float, delimiter=None, unpack=False)
fname : 来源,可以是文件、字符串或产生器,可以是 .gz或.bz2 的压缩文件
dtype : 数据类型
delimiter : 文件中的分隔字符串,默认是任何空格
unpack : 如果为True, 读入属性将写入不同变量
返回值 : 新数组
多维数据
会丢失维度的信息 可以通过元数据文件来存储额外信息
array.tofile(fname, sep='', format='%s')
fname : 文件、字符串
sep : 数据分割字符串,如果是空串,那么写入文件为二进制, 肉眼无法识别
format : 写入数据的格式
返回值 : 无
np.fromfile(fname, dtype=float, count=-1, sep='')
fname : 文件、字符串
dtype : 读取的数据类型
count : 读入的元素个数,-1表示读入整个文件
sep : 分割字符串,为空则视要读取的文件为二进制
返回值 : 新数组
便捷方法
要使用 numpy 自定义的文件格式, 只能numpy自己用 会还原出原数组的维度信息
np.save(fname, array)
np.savez(fname, array)
np.load(fname)
fname : 以 .npy 为扩展名,即 numpy 自定以的格式, 压缩的扩展名为 .npz
随机数函数
NumPy的random子库
基本函数
np.random.rand(d0, d1,,,,dn) 根据 d0-dn 创建随机数数组, d0,,,dn 为维度的信息, 结果为浮点数,[0,1),均匀分布
np.random.randn(d0,d1,,,dn) 标准正态分布
np.random.randint(low,high,shape) 根据shape创建随机整数或整数数组,范围是[low,high)
np.random.seed(s) 随机数种子, s是给定的种子值, 影响之后所有随机数的生成
高级函数
np.random.shuffle(a) 根据数组 a 的第一轴进行随机排列, 原位操作
np.random.permutation(a) 根据数组 a 的第一轴产生一个新的乱序数组, 非原位操作
np.random.choice(a, size, replace ,p) 从一维数组 a 中以概率 p 抽取元素, p也是一个概率的数组, 且和应该为1; 形成 size 形状的新数组; replace表示是否可以重用新元素, 默认为True, 即可重复选取
带分布的随机数函数
都是浮点数
np.random.uniform(low, high, size) 均匀数组
np.random.normal(loc, scale, size) 正态分布的数组, loc均值, scale标准差, size形状
np.random.poisson(lam, size) 具泊松分布的数组, lam随机时间概率, size形状
统计函数
np.sum(a, axis=None) a为数组, axis为给定轴, 为空则是全部元素
np.mean(a, axis=None) 算术平均和
np.average(a, axis=None, weights=None) 加权平均值
np.std(a, axis=None) 标准差
np.var(a, axis=None) 方差
np.min(a) max(a) 最大、最小值
np.argmin(a) argmax(a) 最大、最小值降为一维后的下标
np.unravel_index(index, shape) 数组形状变为shape后 index 对应的下标
np.ptp(a) 计算数组a中元素最大值与最小值的差
np.median(a) 计算a中元素的中位数( 中值 )
梯度函数
np.gradient(f)
计算数组 f 中元素的梯度, 当 f 为多维时, 返回每个维度梯度
梯度: 连续值之间的变化率, 即斜率
数组有多少维度, 函数的梯度就有多少维
Last updated
Was this helpful?