NumPy 数据存储和读入的学习笔记

NumPy数据存储和读入

csv文件(仅限一维和二维数据)

  • np.savetxt(frame,array,fmt=’%.18e’,delimiter=None)
* frame:文件,字符串或产生器,可以是.gz或.bz2的压缩文件
*  array:存入文件的数组
 *  fmt:写入文件的格式
*  delimiter:分割字符串,默认是空格
  • np.loadtxt(frame,dtype=np.float,delimiter=None,unpack=Flase)
    • frame:文件,字符串或产生器,可以是.gz或.bz2的压缩文件
    • dtype: 数据类型,可选
    • delimiter:分割字符串,默认是空格
    • unpack: 如果是Ture,读入属性将分别写入不同变量
import numpy as np
a = np.arange(120).reshape(6,20)
np.savetxt('a.csv',a,fmt='%2d',delimiter=',')
b = np.loadtxt('a.csv',delimiter=',')
b
array([[  0.,   1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,
         11.,  12.,  13.,  14.,  15.,  16.,  17.,  18.,  19.],
       [ 20.,  21.,  22.,  23.,  24.,  25.,  26.,  27.,  28.,  29.,  30.,
         31.,  32.,  33.,  34.,  35.,  36.,  37.,  38.,  39.],
       [ 40.,  41.,  42.,  43.,  44.,  45.,  46.,  47.,  48.,  49.,  50.,
         51.,  52.,  53.,  54.,  55.,  56.,  57.,  58.,  59.],
       [ 60.,  61.,  62.,  63.,  64.,  65.,  66.,  67.,  68.,  69.,  70.,
         71.,  72.,  73.,  74.,  75.,  76.,  77.,  78.,  79.],
       [ 80.,  81.,  82.,  83.,  84.,  85.,  86.,  87.,  88.,  89.,  90.,
         91.,  92.,  93.,  94.,  95.,  96.,  97.,  98.,  99.],
       [100., 101., 102., 103., 104., 105., 106., 107., 108., 109., 110.,
        111., 112., 113., 114., 115., 116., 117., 118., 119.]])

任意维度的数据存储

  • .tofile(frame,sep=’’,format=’%s’)
* frame: 文件,字符串
* sep: 数据分割字符串,如果是空串,写入文件为二进制
* format: 写入数据的格式
  • np.fromfile(frame,dtype=float,count=-1,sep=’’)
* count:读入元素的个数,-1表示读入全部
其他参数同上
a = np.arange(100).reshape(5,10,2)
a.tofile('b.csv',sep=',',format='%d')
c = np.fromfile('b.csv',dtype=np.int,count= -1,sep=',')
c
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
       34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
       51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
       68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
       85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99])

numpy中random模块产生随机数

  1. 产生随机数的方法
    1. rand()   产生[0,1]的浮点随机数,括号里面的参数可以指定产生数组的形状
    2. randn()  产生标准正太分布随机数,参数含义与random相同
    3. randint()  产生指定范围的随机数,最后一个参数是元祖,确定数组的形状
  2. 常用分布
    1. normal()  正太分布
    2. uniform()  均匀分布
    3. poisson()  泊松分布
  3. 乱序和随机抽取
    1. shuffle() 根据数组的第一轴进行随机排列,改变数组
    2. permutation() 根据数组的第一轴产生一个新的乱序数组,不改变数组
    3. choice(a,[,size,replace,p]) 从一维数组中意概率p抽取元素,形成size形状的新数组,replace表示是否可以重用元素,默认是False
a = np.random.rand(3,4,5)
a
array([[[0.68670286, 0.04938666, 0.16380148, 0.65501826, 0.19693535],
        [0.84798519, 0.67034773, 0.69859922, 0.89783656, 0.84745347],
        [0.63678182, 0.89202542, 0.67822446, 0.92399556, 0.67238938],
        [0.47264434, 0.15424216, 0.42999713, 0.62563522, 0.70836184]],

       [[0.91237002, 0.76913677, 0.93591072, 0.58704436, 0.52876933],
        [0.6959677 , 0.40792933, 0.84349387, 0.38559358, 0.29549017],
        [0.80985113, 0.84737437, 0.66548429, 0.42977439, 0.49353092],
        [0.31643587, 0.61012592, 0.80750459, 0.67758127, 0.48803914]],

       [[0.83164099, 0.97125298, 0.6922265 , 0.81180467, 0.50938635],
        [0.60392468, 0.50571989, 0.98953861, 0.8383679 , 0.87153115],
        [0.04374014, 0.59827718, 0.77617646, 0.82689766, 0.84759616],
        [0.88992718, 0.4399082 , 0.15361888, 0.67068806, 0.71430521]]])
b = np.random.randint(100,120,(3,4))
b
array([[109, 114, 102, 103],
       [111, 101, 119, 118],
       [109, 110, 115, 101]])
np.random.shuffle(b)
b
array([[109, 114, 102, 103],
       [111, 101, 119, 118],
       [109, 110, 115, 101]])
np.random.permutation(b)
array([[109, 110, 115, 101],
       [109, 114, 102, 103],
       [111, 101, 119, 118]])

random中常用的统计函数

sum(a,axis=None) 根据给定轴axis计算数组a的相关元素之和,axis为整数或元组
mean(a,axis=None) 根据给定轴axis计算数组a的相关元素期望
average(a,axis=None,weights=None) 加权平均值
std(a,axis=None) 计算标准差
var(a,axis=None) 计算方差
max(a)/min(a)  返回数组a的最大值或最小值
a = np.arange(15).reshape(3,5)
a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
np.sum(a)
105
np.mean(a)
7.0
np.mean(a,axis=1)
array([ 2.,  7., 12.])
np.max(a)
14

NumPy的梯度函数

np.gradient()
c = np.random.randint(0,15,(5))
c
array([ 4, 13,  1,  1, 11])
np.gradient(c)
array([ 9. , -1.5, -6. ,  5. , 10. ])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值