numpy中三维数组中加入元素后的位置详解
2019-12-15 12:08
2336 查看
今天做数据处理时,遇到了从三维数组中批量加入二维数组的需求。其中三维数组在深度学习的特征数据处理时经常会使用到,所以读者有必要对该小知识点做到清楚了解并掌握。现对三维数组中的元素位置结合代码做详细归纳总结,方便日后查阅和为网友答疑!
图示效果图:
直接贴代码:
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.
运行结果图:
分析: 有运行结果可知,创建了六个通道,在深度学习中这六个通道相当于六个Feature Map,对应结果图中的六列。
再向外看一层,共有三个块,每个块代表这个通道的第几行数据。
每个块里有五行数据,每一行代表每个通道的第几列数据
所以,代码中的赋值语句: 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中三维数组中加入元素后的位置详解就是小编分享给大家的全部内容了,希望能给大家一个参考
您可能感兴趣的文章:
相关文章推荐
- jdk8之HashMap resize方法详解(深入讲解为什么1.8中扩容后的元素新位置为原位置+原数组长度)
- 运用java在数组键盘输入的位置加入元素
- Search Insert Position 查找给定元素在数组中的位置,若没有则返回应该在的位置
- C和指针之函数之在数组中找特定元素并返回指向该位置的指针
- 如何在一维数组中查找某重复元素,并输出其位置?用java实现
- 每日算法(十六)-java给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数,输出旋转后的数组
- 向数组指定位置插入元素
- Numpy掩码式数组详解
- Swift - 交换数组中两个元素位置
- LeetCode 34.在排序数组中查找元素的第一个和最后一个位置 c++
- iOS开发,一个数组,里面的元素依次的向后移动,移出的元素依次补到第一个位置
- javascript 常见数组操作( 1、数组整体元素修改 2、 数组筛选 3、jquery 元素转数组 4、获取两个数组中相同部分或者不同部分 5、数组去重并倒序排序 6、数组排序 7、数组截取slice 8、数组插入、删除splice(需明确位置) 9、数组遍历 10、jQuery根据元素值删除数组元素的方)
- PHP获取数组中某元素的位置及array_keys函数应用
- 将数组中最大的元素放到数组最中间的位置,然后依次由大到小轮换放到左右两边
- php数组函数序列之array_splice() - 在数组任意位置插入元素
- 查找一个list中各个数组的元素在一个固定数组中的位置, 并把位置信息记录到一个矩阵里
- 【捷哥浅谈PHP】第三弹---使用二分查找法查找数组中的元素位置
- LeetCode34:在排序数组中查找元素的第一个和最后一个位置,java实现
- 交换数组中两个位置的元素值
- 第十六讲项目1.4—创建长度16的整型数组a并初始化前15个元素,输入一个整数b,将b插入到a[0]位置