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大牛 应该都有这份书单
Oct 31 Python
基于python中pygame模块的Linux下安装过程(详解)
Nov 09 Python
python 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
python微信跳一跳游戏辅助代码解析
Jan 29 Python
Django获取应用下的所有models的例子
Aug 30 Python
ipad上运行python的方法步骤
Oct 12 Python
python实现滑雪游戏
Feb 22 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
Python基于QQ邮箱实现SSL发送
Apr 26 Python
python轮询机制控制led实例
May 03 Python
Pandas缺失值2种处理方式代码实例
Jun 13 Python
Python 匹配文本并在其上一行追加文本
May 11 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
2021年最新CPU天梯图
2021/03/04 数码科技
PHP中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
2012/03/26 PHP
php 判断是否是中文/英文/数字示例代码
2013/09/30 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
奇妙的js
2007/09/24 Javascript
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
JS 显示当前日期与时间的代码
2010/03/24 Javascript
jQuery(非HTML5)可编辑表格实现代码
2012/12/11 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
2013/01/11 Javascript
简单的js表单验证函数
2013/10/28 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
2013/12/24 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
2017/02/15 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
web前端开发中常见的多列布局解决方案整理(一定要看)
2017/10/15 Javascript
浅谈Angular单元测试总结
2019/03/22 Javascript
[01:05:29]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第二场 1月24日
2021/03/11 DOTA
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python定时器线程池原理详解
2020/02/26 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
python为什么会环境变量设置不成功
2020/06/23 Python
CSS3制作彩色进度条样式的代码示例分享
2016/06/23 HTML / CSS
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
The North Face北面荷兰官网:美国著名户外品牌
2019/10/16 全球购物
英国买鞋网站:Charles Clinkard
2019/11/14 全球购物
联想C++笔试题
2012/06/13 面试题
机械工程师求职自我评价
2013/09/23 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript