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 SQLite3数据库操作类分享
Jun 10 Python
Python2.7简单连接与操作MySQL的方法
Apr 27 Python
Python实现的寻找前5个默尼森数算法示例
Mar 25 Python
解决新django中的path不能使用正则表达式的问题
Dec 18 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
用python写一个定时提醒程序的实现代码
Jul 22 Python
对django2.0 关联表的必填on_delete参数的含义解析
Aug 09 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
Python获取时间戳代码实例
Sep 24 Python
python发qq消息轰炸虐狗好友思路详解(完整代码)
Feb 15 Python
Python Django中间件使用原理及流程分析
Jun 13 Python
python实现简单聊天功能
Jul 07 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数组实现无限分类,不使用数据库,不使用递归.
2006/12/09 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
php+mysqli数据库连接的两种方式
2015/01/28 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
PHP cookie,session的使用与用户自动登录功能实现方法分析
2019/06/05 PHP
可输入的下拉框
2006/06/19 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
浅析jQuery中常用的元素查找方法总结
2013/07/04 Javascript
利用javascript数组长度循环数组内所有元素
2013/12/27 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
JS中‘hello’与new String(‘hello’)引出的问题详解
2018/08/14 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
vue监听dom大小改变案例
2020/07/29 Javascript
Python实现的简单万年历例子分享
2014/04/25 Python
Python中functools模块的常用函数解析
2016/06/30 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
python制作简单五子棋游戏
2019/06/18 Python
python跳出双层for循环的解决方法
2019/06/24 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
Django结合ajax进行页面实时更新的例子
2019/08/12 Python
python随机数分布random均匀分布实例
2019/11/27 Python
Python调用Windows命令打印文件
2020/02/07 Python
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
法国发饰品牌:Alexandre De Paris
2018/12/04 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
关键字final的用法
2013/10/02 面试题
教师专业理论水平的自我评价分享
2013/11/09 职场文书
参观接待方案
2014/03/17 职场文书
人资专员岗位职责
2014/04/04 职场文书
寒假家长评语大全
2014/04/16 职场文书
现场活动策划方案
2014/08/22 职场文书
公共场所卫生管理制度
2015/08/05 职场文书