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

作者:经年不往 时间:2021-02-28 10:25:14 

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

图示效果图:

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),每一个平面的每一行。

来源:https://blog.csdn.net/mago2015/article/details/81069321

标签:numpy,三维数组,位置
0
投稿

猜你喜欢

  • iframe 的用法与注意事项

    2008-02-12 12:56:00
  • Python进制转换用法详解

    2021-08-20 15:18:40
  • 基于javascript如何传递特殊字符

    2023-09-06 04:14:23
  • PHPMyadmin2.10中文显示为乱码的解决办法

    2007-08-22 08:18:00
  • python连接sql server乱码的解决方法

    2023-06-27 07:25:17
  • 轻松掌握SQL Server存储过程的命名标准

    2009-01-15 13:14:00
  • Python+Tableau广东省人口普查可视化的实现

    2022-02-12 21:53:59
  • python实现Nao机器人的单目测距

    2021-04-09 16:37:10
  • Go语言转换所有字符串为大写或者小写的方法

    2023-06-21 19:48:07
  • 文章内链(标签)的一个思路

    2009-10-31 19:03:00
  • [翻译]标记语言和样式手册 Chapter 7 锚点

    2008-01-28 14:01:00
  • AJAX实现web页面中级联菜单的设计

    2007-09-26 13:37:00
  • MS SQL Server中的CONVERT日期格式化大全

    2010-08-07 11:31:00
  • python实现矩阵乘法

    2023-11-03 07:41:10
  • Python处理CSV与List的转换方法

    2021-11-22 11:53:48
  • ASP.NET技巧:同时对多个文件进行大量写操作对性能优化

    2023-07-08 12:22:37
  • python批量识别图片指定区域文字内容

    2021-04-26 13:59:54
  • 详解在Python中处理异常的教程

    2023-08-30 15:36:26
  • MySQL 定时器EVENT学习

    2010-10-14 13:55:00
  • python用faker库批量生成假数据

    2023-04-09 13:15:46
  • asp之家 网络编程 m.aspxhome.com