Numpy数据存取与函数

  • 一维和二维数据的存取

    • CSV文件, np.loadtxt(), np.savetxt()
  • 多维数据的存取

    • a.tofile(), np.fromfile()
    • np.save(), np.load()
  • numpy的随机函数(np.random)

    • rand(), randn(), randint(), seed()
    • shuffle(), permutation(), choice()
    • uniform(), normal(), poisson()
  • numpy的统计函数

    • sum(), mean(), average(), std(), var()
    • min(), max(), argmin(), argmax(), unravel_index(), ptp(), median()
  • numpy的梯度函数

    • np.gradient()

CSV文件:存取一维和二维数据

  • CSV文件是一种常见的文件格式,用来存储批量数据。
  • CSV文件只能有效的存储一维和二维数组。
  • np.savetxt(), np.loadtxt()只能有效的存取一维和二维数组。
Numpy将数据存入CSV文件,函数如下:

import numpy as np
a = np.arange(100).reshape(5, 20)
np.savetxt('a.csv', a, fmt="%d", delimiter=',')

Numpy读入CSV文件,函数如下:

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.]])
b = np.loadtxt('a.csv', dtype=np.int32, 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]])

多维数据的存取

  • 数据存入:tofile,数据加载loadfile
  • 便捷的文件存取方法:np.save,np.load
多维数据的存入:tofile函数

a = np.arange(100).reshape(5, 10, 2)
a.tofile("b.dat", sep=",", format='%d')

结果将会平铺为一维数据,如下

多维数据的加载:np.fromfile函数

c = np.fromfile("b.dat", dtype=np.int32, 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])
# 要想还原数据,还要知道原先数组的尺寸
c = c.reshape(5, 10, 2)
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]]])
便捷的文件存取:np.save,np.load

np.save("a.npy", a)
b = np.load("a.npy")
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]]])
两种存取方法比较

Numpy的随机数函数

np.random的随机数函数(一)

a = np.random.rand(3, 4, 5)
a
array([[[0.15257507, 0.02480371, 0.62325075, 0.30554174, 0.71039419],[0.16793472, 0.11053303, 0.18702078, 0.59347635, 0.18655296],[0.34498871, 0.82380281, 0.62474943, 0.09706273, 0.84723209],[0.32304167, 0.97391336, 0.34865744, 0.69825689, 0.33477139]],[[0.97218235, 0.547869  , 0.01222512, 0.47606408, 0.55055613],[0.18585335, 0.06653516, 0.32867498, 0.59954051, 0.36819215],[0.23493346, 0.75768867, 0.48641578, 0.98568222, 0.83763441],[0.44208099, 0.96234619, 0.93853069, 0.23875454, 0.64855734]],[[0.21927259, 0.54326216, 0.5728762 , 0.30291199, 0.30875352],[0.70463617, 0.16616126, 0.9389809 , 0.99866047, 0.84941496],[0.66782308, 0.80883132, 0.83030115, 0.21593487, 0.11052866],[0.50227729, 0.7373498 , 0.08622482, 0.1546465 , 0.7673344 ]]])
sn = np.random.randn(3, 4, 5)
sn
array([[[-0.13899166,  0.81753401, -1.51661175,  1.12756715,0.47075786],[ 1.58396047, -0.21436527,  1.60210739,  0.50196767,-0.70752227],[-1.07846307,  0.24308953,  1.31379971,  1.37007777,1.0744217 ],[ 0.91036789,  1.22711205, -0.36849642,  0.32428547,0.14387649]],[[-1.02127348, -0.41833756, -0.95767588,  0.51808076,0.96952932],[-0.86687153,  1.51265849,  0.10725677,  0.54024379,-1.16591356],[ 1.45679455, -1.12580397,  0.70885802, -1.13800884,0.46957394],[ 2.03218182, -0.53277405, -2.19688155, -0.20649949,2.00457427]],[[-0.04384466, -0.67094456, -0.50440545, -1.38355559,-1.75376971],[-0.52912614,  0.44385732, -1.89686488,  0.16396965,0.96562041],[ 1.37031847, -0.20085887,  0.56562333, -0.27319559,-1.34236485],[-0.28952533, -0.5397941 , -0.61748276,  1.35898526,-1.09242035]]])
b = np.random.randint(100, 200, (3, 4))
b
array([[178, 153, 195, 183],[197, 160, 146, 157],[161, 134, 120, 156]])
np.random.seed(10)
np.random.randint(100, 200, (3, 4))
array([[109, 115, 164, 128],[189, 193, 129, 108],[173, 100, 140, 136]])
# 使用同一个种子,可以发现生成结果是相同的
np.random.seed(10)
np.random.randint(100, 200, (3, 4))
array([[109, 115, 164, 128],[189, 193, 129, 108],[173, 100, 140, 136]])
np.random的随机数函数(二)

a = np.random.randint(100, 200, (3, 4))
a
array([[116, 111, 154, 188],[162, 133, 172, 178],[149, 151, 154, 177]])
# 原来的数组a改变了
np.random.shuffle(a)
a
array([[116, 111, 154, 188],[149, 151, 154, 177],[162, 133, 172, 178]])
a = np.random.randint(100, 200, (3, 4))
a
array([[125, 113, 192, 186],[130, 130, 189, 112],[165, 131, 157, 136]])
np.random.permutation(a)
array([[125, 113, 192, 186],[130, 130, 189, 112],[165, 131, 157, 136]])
# 使用permutation乱序数组时,不会改变原来的数组a
a
array([[125, 113, 192, 186],[130, 130, 189, 112],[165, 131, 157, 136]])
np.random的随机数函数(三)

u = np.random.uniform(0, 10, (3,4))
u
array([[6.01038953, 8.05223197, 5.21647152, 9.08648881],[3.19236089, 0.90459349, 3.00700057, 1.13984362],[8.28681326, 0.46896319, 6.26287148, 5.47586156]])
n = np.random.normal(0, 1, (3,3))
n
array([[-0.49561818,  0.52563742, -0.38964647],[ 0.9372965 , -0.8169742 ,  1.01961544],[-0.34143633,  0.7512814 , -0.36225179]])
p = np.random.poisson(0.5, (3, 3))
p
array([[0, 1, 0],[2, 1, 0],[1, 0, 0]])

### Numpy的统计函数

numpy统计函数(一)

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, axis=1)
array([ 2.,  7., 12.])
np.mean(a, axis=0)
array([5., 6., 7., 8., 9.])
np.average(a, axis=0, weights=[10, 5, 1])
array([2.1875, 3.1875, 4.1875, 5.1875, 6.1875])
np.std(a)
4.320493798938574
np.var(a)
18.666666666666668
numpy统计函数(二)

b = np.arange(15, 0, -1).reshape(3, 5)
b
array([[15, 14, 13, 12, 11],[10,  9,  8,  7,  6],[ 5,  4,  3,  2,  1]])
np.max(b)
15
np.min(b)
1
np.argmax(b)
0
# 生成多维下标
np.unravel_index(np.argmax(b), b.shape)
(0, 0)
np.ptp(b)
14
np.median(b)
8.0

numpy的梯度函数

a = np.random.randint(0, 20, (5))
a
array([18,  3, 16, 18, 16])
np.gradient(a)
array([-15. ,  -1. ,   7.5,   0. ,  -2. ])
b = np.random.randint(0, 50,(3, 5))
b
array([[14, 15, 17, 25, 46],[48, 42, 17, 32, 17],[41, 16, 41, 26, 12]])
np.gradient(b)
[array([[ 34. ,  27. ,   0. ,   7. , -29. ],[ 13.5,   0.5,  12. ,   0.5, -17. ],[ -7. , -26. ,  24. ,  -6. ,  -5. ]]),array([[  1. ,   1.5,   5. ,  14.5,  21. ],[ -6. , -15.5,  -5. ,   0. , -15. ],[-25. ,   0. ,   5. , -14.5, -14. ]])]

[二] Numpy数据存取与函数相关推荐

  1. Numpy数据存取与函数

    Python数据存取与函数 CSV文件 `np.savetxt()` `np.loadtxt()` CSV文件的局限性 多维数据的存取 `tofile()` `np.fromfile()` 需要注意: ...

  2. 第一周——数据分析之表示 —— Numpy 数据存取与函数

    数据的CSV文件的存取 CSV文件:CSV (Comma‐Separated Value, 逗号分隔值) CSV是一种常见的文件格式,用来存储批量数据 np.savetxt(frame, array, ...

  3. Matplotlib——直方图_hist()函数_histogram()函数_二维数据

    一个简单的直方图可以直观地展示数据的分布,包括数值分布的区间.密度和形状. 在实际的工作过程中,我们可能需要对数据进行数学建模和统计分析,这些数据处理技术往往基于数据符合的某些假设,而直方图是检查数据 ...

  4. 用Numpy和Pandas分析二维数据笔记

    用Numpy和Pandas分析二维数据 上节课,我们利用numpy和pandas分析了一维数据.在这节课中,你将学到这两种库的更多特性.并用它们来分析 二维数据,这节课后,你将能够使用pandas重新 ...

  5. Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组、split函数垂直拆分二维numpy数组

    Python使用numpy函数vsplit垂直(行角度)拆分numpy数组(返回拆分后的numpy数组列表)实战:垂直拆分二维numpy数组.split函数垂直拆分二维numpy数组 目录

  6. Python使用numpy函数hsplit水平(按列)拆分numpy数组(返回拆分后的numpy数组列表)实战:水平(按列)拆分二维numpy数组、split函数水平(按列)拆分二维numpy数组

    Python使用numpy函数hsplit水平(按列)拆分numpy数组(返回拆分后的numpy数组列表)实战:水平(按列)拆分二维numpy数组.split函数水平(按列)拆分二维numpy数组 目 ...

  7. iterp2函数--------二维数据内插值

    [语法说明] 1.zi=interp1(x,y,z,xi,yi):返回矩阵zi,其元素包含对应于参量xi和yi的元素.用户可以输入行向量和列向量xi和yi,此时,输出向量zi与矩阵meshgrid(x ...

  8. boost::python模块包装几个 C++ 函数 将二维数组操作为采用 NumPy 数组的 Python 函数作为参数

    boost::python模块包装几个 C++ 函数 将二维数组操作为采用 NumPy 数组的 Python 函数作为参数 实现功能 C++实现代码 实现功能 boost::python模块包装几个 ...

  9. Numpy中使用astype函数将字符串格式数据转换为数值数据类型

    Numpy中使用astype函数将字符串格式数据转换为数值数据类型 目录 Numpy中使用astype函数将字符串格式数据转换为数值数据类型 numpy是什么?numpy和list有哪些区别? Num ...

最新文章

  1. 推荐|一个地面机器人采集的大型数据集
  2. python3和2的区别大吗_python3和2为什么区别大吗
  3. Wind7系统下 wifi设置
  4. unix系统编码 java_Java 正确的做字符串编码转换
  5. 导师都有哪些“秘密”没有告诉你?
  6. 因为你的电脑安装了即点即用_即你所爱
  7. 你会通过Docker部署war包吗
  8. django CBV装饰器 自定义django中间件 csrf跨站请求伪造 auth认证模块
  9. 程序员谨防加班猝死之十大建议
  10. Linux常用的基本命令14
  11. HALCON: HALCON 20.11.0.0 Progress主要新特性
  12. 32 开漏输出 高电平_关于各种IO输出类型详解
  13. 安全管家安卓_网速管家安卓5.4版本全面上线,多场景网络体验全面升级
  14. html点击登陆、注册等时候出现等待图标代码
  15. C++输入大写字母转小写字母
  16. 安卓桌面软件_抖音上火爆的动态桌面壁纸(视频桌面),狂拽酷炫吊炸天!
  17. 【学习日记】Dom基础
  18. 在图3-30 中,某学院的以太网交换机有三个接口分别和学院三个系的以太网相连,另外三个接口分别和电子邮件服务器、万维网服务器以及一个连接互联网的路由器相连。图中的A,B和C都是100Mbit/s以太网
  19. asp.net控件,服务器标记的格式不正确问题解决方法
  20. Android-skin-support 换肤原理全面解析

热门文章

  1. mysql 星 拓扑,高性能MySQL:复制拓扑
  2. keil固件库芯片支持包下载
  3. 【翻译】Nova过滤调度器
  4. Python 练习实例23 题目:打印出如下图案(菱形)
  5. telerik grid ajax,Telerik.Web.Mvc网格。在.DetailView中没有调用Ajax方法
  6. 备忘录:PC(win7 64位)读取雷电2接口阵列
  7. 密码泛在化实践者之路
  8. 赌王(比赛2第三题)
  9. c语言中字符指针变量输入,C语言指针基础知识实例讲解
  10. mmdvm 接收_MMDVM传呼功能(POCSAG)