我们在处理深度学习、深度强化学习输入数据时,经常需要调整数据维度,例如下图所示。

我们有a×b的二维图片(一般就是灰度图片)或数据,构造连续四张图为连续数据,也就是图中图1到图2的变换。

    # 沿着新轴连接数组/矩阵,增加一个维度,形成三维数组/矩阵/向量a3 = np.stack((a2,a2,a2,a2), axis=2)

对应于Tensorflow的输入定义表示法为:

 n_features= (None, 50, 50, 4), # 输入“带前三张”灰度图像尺寸与维度

接着,我们要实现每次替换一张图片/一组数据,构造连续新四张图为连续数据,也就是图中图3的变换。

    # 合并两个三维,切片取三组f = np.append(b2,a3[:,:,:3],axis=2)

其中,通过Numpy的appand合并数组/矩阵,需要注意二者b2和a3的维度保持一致,而b1是二维图片,如何变换为三维呢:

    # 一维转变为三维b2 = b1.reshape(3,2,1)

最后,全部演示代码如下:

import numpy as npif __name__ == '__main__':a = [0 , 1, 2, 3, 4, 5]#  取list最后的元素print(a[-1])b = [6, 7, 8, 9, 10, 11]# list转numpy数组a1 = np.array(a)print(a1)# 重新调整数据/矩阵为二维a2 = a1.reshape(3,2)print(a2)# 沿着新轴连接数组/矩阵,增加一个维度,形成三维数组/矩阵/向量a3 = np.stack((a2,a2,a2,a2), axis=2)     print(a3)print(a3.shape)b1 = np.array(b)# 一维转变为三维b2 = b1.reshape(3,2,1)print(b2)# 合并两个三维,切片取三组f = np.append(b2,a3[:,:,:3],axis=2)print(f)

输出效果如下:

5
[0 1 2 3 4 5]
[[0 1][2 3][4 5]]
[[[0 0 0 0][1 1 1 1]][[2 2 2 2][3 3 3 3]][[4 4 4 4][5 5 5 5]]]
(3, 2, 4)
[[[ 6][ 7]][[ 8][ 9]][[10][11]]]
[[[ 6  0  0  0][ 7  1  1  1]][[ 8  2  2  2][ 9  3  3  3]][[10  4  4  4][11  5  5  5]]]

参考:
《强化学习之迷宫DQN(NIPS 2015版)实践笔记——入门提升篇》 CSDN博客 , 肖永威 ,2021.01

Python实现连续图片、多图片多维组合既数据增维和调整维度的案例一则相关推荐

  1. 动手深度学习13——计算机视觉:数据增广、图片分类

    文章目录 一.数据增广 1.1 为何进行数据增广? 1.2 常见图片增广方式 1.2.1 翻转 1.2.2 切割(裁剪) 1.2.3 改变颜色 1.2.4 综合使用 1.3 使用图像增广进行训练 1. ...

  2. python 摄像头录制帧率_实践:用python实现把视频以帧数输出成连续的多图片

    在处理图像的时候,如果获取了一个视频,想把视频以帧数输出成连续的多图片构成图像数据集. 有人就想问什么软件可以把一段电影视频的每一帧连续自动保存成图片? 其实用很短的python程序就能快速实现该功能 ...

  3. 【python 图片识别】python识别图片是不是包含二维码

    近几天在研究二维码的识别,主要是通过python代码来识别特定图片内是否包含二维码.方法有分类,还有下面我介绍的直接法. 需要安装库 pip install pyzbar pip install op ...

  4. Python用qrcode和PIL制作二维码并添加汉字(用Python在图片上添加汉字)

    前言 由于项目需要批量的二维码,但是普通制作的二维码上面没有文字,难以区分不同的二维码,所以为了批量制作带汉字的二维码,所以自己查找找到了这个方法,写出来做个笔记. 使用步骤 1.引入库 import ...

  5. Python读取excel中的图片

    Python读取excel中的图片 一.读取excel文件 我们先来看看如何读取excel文件,读取excel文件的方式很多.这里选择openpyxl模块,安装语句如下: pip install op ...

  6. Python工具之一:九宫格图片极致裁剪

    博客迁移 个人博客站点,欢迎访问,www.jiingfengji.tech Python工具之一:九宫格图片极致裁剪 工具用途 在读到文章(https://blog.uwa4d.com/archive ...

  7. python模块之image修改图片类型

    python模块之image修改图片类型 有时候我们需要不同格式的图片后缀格式,如:png,jpg,如果仅仅手动修改图片的后缀的话,只是表面修改了后缀格式,其实图片的原类型仍然没有变化,可以用pyth ...

  8. python模块之imghdr检测图片类型

    python模块之imghdr检测图片类型 1. imghdr是什么 imghdr是一个用来检测图片类型的模块,传递给它的可以是一个文件对象,也可以是一个字节流.[仅仅根据文件后缀判断文件类型显然不准 ...

  9. Python使用PIL将png图片转化为jpg图片

    Python使用PIL将png图片转化为jpg图片 pip install Pillow #PIL将png图片转化为jpg图片语法 from PIL import Imageim1 = Image.o ...

最新文章

  1. cv::Mat 与 float 互换,实现 argmax 得到像素点分类
  2. 04-图像的阈值操作
  3. python读取扫描形成的pdf_Python利用PyPDF2库获取PDF文件总页码实例
  4. vue 用jsp 还是html,如何在jsp页面里使用vue
  5. 瓜田老梁:FA1# 微服务流控防护场景与应对措施
  6. OJ1005: 整数幂
  7. 初学java小白的疑惑梳理
  8. git 第二次提交_win10 将本地项目上传到github (第一次+再次上传)
  9. matplotlib-plt.style.use
  10. java自学能学会吗_Java自学能学会吗?Java新手学习路线
  11. 快速下载720云高清全景图片
  12. 读懂了鱼玄机,就读懂了爱情
  13. 自媒体怎么做?5个操作步骤,普通人也可以做
  14. python学习笔记(52周存钱挑战)
  15. 手绘计算机比赛海报,手绘海报大赛 | 匠心
  16. OpenFOAM 雾化模型头文件信息摘录
  17. 一位前BAT面试官,详聊进入BAT的面试经验
  18. LeetCode 110 Balanced Binary Tree
  19. LeetCode 09:回文数(Java实现)
  20. 专业建站和个人建站如何选择?

热门文章

  1. java object toarray_关于java:List.toArray(Object [])性能
  2. C++ 武将排序简写
  3. C语言编译,链接,运行
  4. Linux curses库
  5. 腾讯王者服务器性能,性能飙升!腾讯这一技术将使王者荣耀告别卡顿!
  6. 开发企业级微信公众号【1天上线】
  7. python 3.9 gil_Python进阶:深入GIL(下篇)
  8. 基于docker搭建redis哨兵模式
  9. hlookup函数与选择性粘贴
  10. Markdown语法:基础编写方式