numpy中三维数组中加入元素后的位置详解


Posted in Python onNovember 28, 2019

今天做数据处理时,遇到了从三维数组中批量加入二维数组的需求。其中三维数组在深度学习的特征数据处理时经常会使用到,所以读者有必要对该小知识点做到清楚了解并掌握。现对三维数组中的元素位置结合代码做详细归纳总结,方便日后查阅和为网友答疑!

图示效果图:

numpy中三维数组中加入元素后的位置详解

直接贴代码:

def test3D():
 import numpy as np
 data_array = np.zeros((3, 5, 6), dtype=np.int)
 data_array[1, 2, 2] = 1
 
 print(data_array)

介绍:通过np.zeros创建一个3行5列6个通道的三维数组,并给第二个通道的第一行第二列赋值1.

运行结果图:

numpy中三维数组中加入元素后的位置详解

分析: 有运行结果可知,创建了六个通道,在深度学习中这六个通道相当于六个Feature Map,对应结果图中的六列。

numpy中三维数组中加入元素后的位置详解

再向外看一层,共有三个块,每个块代表这个通道的第几行数据。

numpy中三维数组中加入元素后的位置详解

每个块里有五行数据,每一行代表每个通道的第几列数据

numpy中三维数组中加入元素后的位置详解

所以,代码中的赋值语句: data_array[1, 2, 2] = 1

表示为第2个通道,下标从0开始,所以在图中位置为第三列;第1行第2列,下标从0开始,所以图中表示第二个块的第三行;即为图中所示位置。

补充:三维数组的求和

多维数组的轴(axis=)是和该数组的size(或者shape)的元素是相对应的;

>>> np.random.seed(123)
>>> X = np.random.randint(0, 5, [3, 2, 2])
>>> print(X)
 
[[[5 2]
 [4 2]]
 
 [[1 3]
 [2 3]]
 
 [[1 1]
 [0 1]]]
 
>>> X.sum(axis=0)
array([[7, 6],
  [6, 6]])
 
>>> X.sum(axis=1)
array([[9, 4],
  [3, 6],
  [1, 2]])
 
>>> X.sum(axis=2)
array([[7, 6],
  [4, 5],
  [2, 1]])

如果将三维数组的每一个二维看做一个平面(plane,X[0, :, :], X[1, :, :], X[2, :, :]),三维数组即是这些二维平面层叠(stacked)出来的结果。则(axis=0)表示全部平面上的对应位置,(axis=1),每一个平面的每一列,(axis=2),每一个平面的每一行。

以上这篇numpy中三维数组中加入元素后的位置详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python编程之字符串模板(Template)用法实例分析
Jul 22 Python
Python基于递归算法实现的走迷宫问题
Aug 04 Python
Python使用三种方法实现PCA算法
Dec 12 Python
pandas全表查询定位某个值所在行列的方法
Apr 12 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 Python
将python2.7添加进64位系统的注册表方式
Nov 20 Python
python加载自定义词典实例
Dec 06 Python
python统计字符的个数代码实例
Feb 07 Python
Tensorflow:转置函数 transpose的使用详解
Feb 11 Python
Python编程快速上手——强口令检测算法案例分析
Feb 29 Python
keras实现theano和tensorflow训练的模型相互转换
Jun 19 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 #Python
解决Python二维数组赋值问题
Nov 28 #Python
python之array赋值技巧分享
Nov 28 #Python
python3 实现函数写文件路径的正确方法
Nov 27 #Python
关于Python3 lambda函数的深入浅出
Nov 27 #Python
python3中rank函数的用法
Nov 27 #Python
Python values()与itervalues()的用法详解
Nov 27 #Python
You might like
PHP 编程的 5个良好习惯
2009/02/20 PHP
PHP开发微信支付的代码分享
2014/05/25 PHP
php调用KyotoTycoon简单实例
2015/04/02 PHP
ThinkPHP在Cli模式下使用模板引擎的方法
2015/09/25 PHP
thinkPHP通用控制器实现方法示例
2017/11/23 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
E3 tree 1.6在Firefox下显示问题的修复方法
2013/01/30 Javascript
JS获取下拉列表所选中的TEXT和Value的实现代码
2014/01/11 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
AngularJS Ajax详解及示例代码
2016/08/17 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
2018/03/01 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
createObjectURL方法实现本地图片预览
2019/09/30 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
详解Vue 的异常处理机制
2020/11/30 Vue.js
[41:20]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS DK
2014/05/26 DOTA
为Python的Tornado框架配置使用Jinja2模板引擎的方法
2016/06/30 Python
python访问抓取网页常用命令总结
2017/04/11 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
在python中安装basemap的教程
2018/09/20 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
TENSORFLOW变量作用域(VARIABLE SCOPE)
2020/01/10 Python
python实现文法左递归的消除方法
2020/05/22 Python
selenium设置浏览器为headless无头模式(Chrome和Firefox)
2021/01/08 Python
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
六十大寿答谢词
2014/01/12 职场文书
自我介绍演讲稿
2014/01/15 职场文书
学习交流会主持词
2014/04/01 职场文书
保证书格式范文
2014/04/28 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
一文搞懂python异常处理、模块与包
2021/06/26 Python
Mysql8.0递归查询的简单用法示例
2021/08/04 MySQL