1.numpy中三维数组的理解

三维数组图形–立方体

我们在做图像处理,RNN序列数据,迭代数据的时候会遇到三维数组,我们应该理解这三种情况下三维数组的数据分布是怎么样的,才能更好的理解算法,和程序的原理,其实三维数组就是三维的数,这么说确实很抽象,空洞。但是我们可以将三维数组想象成为一个立方体,三维数组的每个维度代表着立方体的长宽高的一个,假设我们与一个三维数组a[3][3][3],把它形象成为一个变长为3的立方体,每一个维度就是将对的边三等分,我们将第一维度理解为立方体的长,第二维度理解为宽,第三维度理解为高,想象立方体就在我们前面,一个面和我们的身体平行

  • a[1]:就表示立方体中间的一个水平面
  • a[0][0]:就表示左上角的一个和我们身体垂直的边
  • a[:, :,0]:表示与我们身体平行的第一个平面
    接下来创建一个是3X3的三维数组
import numpy as np
x = np.arange(27)
print(x)
x = np.reshape(x, (3,3,3))
print('(行,列, 通道)', x.shape)
print(x)
print('第0个水平面', x[0])
print('变成 a ', x[0][0])

下面是数在立方体中的分布
在这里插入图片描述

图片中的三维数组

图片是又RGB三种颜色构成的,我们可以将它看作是一个三维数组,这个三维数组就是一个立方体,三维数组的第一维就是图片的宽度

  • a[:, :, 0]:表示R通道的长宽图片
    在这里插入图片描述

RNN中序列数据的三维数组

在rnn中序列数据,其由数据特征维度,数据量维度,数据时间步维度构成,我是这么理解的

  • 数据特征维度:就是一个数据数据有多少个特征,可以理解为一个数据数据的向量的人维度
  • 数据量维度:就是一个时间步总共有多少个数据输入数据

在这里插入图片描述

迭代数据中的三维数组

例如我们要生成一个迭代器,一次输出为一次迭代,一个迭代假设有128个批次(batch),可以用立方体的水平面表示一个批次,立方体的长可以表示数据量维度数据的,宽表示数据特征维度,高表示批次

  • a[0] 表示一个批次
  • a[0][0] 表示第一个批次的第0个输入数据
  • a[0][0][0] 表示第一个批次,第0个输入数据的第0个特征

在这里插入图片描述

  • 54
    点赞
  • 238
    收藏
    觉得还不错? 一键收藏
  • 16
    评论
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值