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数据类型之列表
Jun 24 Python
python之Socket网络编程详解
Sep 29 Python
python数字图像处理之高级滤波代码详解
Nov 23 Python
Python实现带参数与不带参数的多重继承示例
Jan 30 Python
单链表反转python实现代码示例
Feb 08 Python
python简易远程控制单线程版
Jun 20 Python
分享vim python缩进等一些配置
Jul 02 Python
python write无法写入文件的解决方法
Jan 23 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
python实现修改固定模式的字符串内容操作示例
Dec 30 Python
Python使用sqlite3模块内置数据库
May 07 Python
Python Pygame实战在打砖块游戏的实现
Mar 17 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自动跳转中英文页面
2008/07/29 PHP
Chrome Web App开发小结
2014/09/04 PHP
Zend Framework教程之模型Model用法简单实例
2016/03/04 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
php unlink()函数使用教程
2018/07/12 PHP
js上传图片及预览功能实例分析
2015/04/24 Javascript
jQuery子窗体取得父窗体元素的方法
2015/05/11 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
javascript 删除数组元素和清空数组的简单方法
2017/02/24 Javascript
Vue2组件tree实现无限级树形菜单
2017/03/29 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
Angular2入门教程之模块和组件详解
2017/05/28 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
微信小程序购物车、父子组件传值及calc的注意事项总结
2018/11/14 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
微信公众平台获取access_token的方法步骤
2019/03/29 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
Python的一些用法分享
2012/10/07 Python
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Python psutil模块简单使用实例
2015/04/28 Python
详解Python函数作用域的LEGB顺序
2016/05/14 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
python读取几个G的csv文件方法
2019/01/07 Python
详解Python time库的使用
2019/10/10 Python
Scrapy框架介绍之Puppeteer渲染的使用
2020/06/19 Python
python matplotlib库的基本使用
2020/09/23 Python
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
TCP/IP模型的分界线
2012/12/01 面试题
中国梦演讲稿3分钟
2014/08/19 职场文书
队名及霸气口号大全
2015/12/25 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL