Python-np.expand_dims()

1. np.expand_dims

用于扩展数组的维度

执行程序后注意观察中括号[ ]的位置和数量

np.expand_dims(a, axis=0)表示在axis=0维度处扩展维度,加一层中括号[ ];

np.expand_dims(a, axis=1)表示在axis=1维度处扩展维度,加一层中括号[ ];

np.expand_dims(a, axis=2)表示在axis=2维度处扩展维度,加一层中括号[ ];

np.expand_dims(a, axis=-1)表示在axis=-1(最后)维度处扩展维度,加一层中括号[ ];

(py3.6) E:\PYTHON>ipython
Python 3.6.13 |Anaconda, Inc.| (default, Mar 16 2021, 11:37:27) [MSC v.1916 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 7.16.3 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import numpy as np

In [2]: a = np.array([[1, 2, 3],[4, 5, 6]])

In [3]: a
Out[3]:
array([[1, 2, 3],
       [4, 5, 6]])

In [4]: a.shape
Out[4]: (2, 3)

1.1 axis=0

In [5]: b = np.expand_dims(a, axis=0)

In [6]: b
Out[6]:
array([[[1, 2, 3],
        [4, 5, 6]]])

In [7]: b.shape
Out[7]: (1, 2, 3)

1.2 axis=1

In [8]: c = np.expand_dims(a, axis=1)

In [9]: c
Out[9]:
array([[[1, 2, 3]],

       [[4, 5, 6]]])

In [10]: c.shape
Out[10]: (2, 1, 3)

1.3 axis=2

In [11]: d = np.expand_dims(a, axis=2)

In [12]: d
Out[12]:
array([[[1],
        [2],
        [3]],

       [[4],
        [5],
        [6]]])

In [13]: d.shape
Out[13]: (2, 3, 1)

1.4 axis=-1 

In [14]: e = np.expand_dims(a, axis=-1)

In [15]: e
Out[15]:
array([[[1],
        [2],
        [3]],

       [[4],
        [5],
        [6]]])
In [16]: e.shape
Out[16]: (2, 3, 1)

1.5 axis=3

In [17]: f = np.expand_dims(a, axis=3)
---------------------------------------------------------------------------
AxisError                                 Traceback (most recent call last)
<ipython-input-16-d7316647942f> in <module>
----> 1 f = np.expand_dims(a, axis=3)

<__array_function__ internals> in expand_dims(*args, **kwargs)

D:\RuanJianAnZhunangWeiZhi\anaconda\anaconda3\envs\py3.6\lib\site-packages\numpy\lib\shape_base.py in expand_dims(a, axis)
    595
    596     out_ndim = len(axis) + a.ndim
--> 597     axis = normalize_axis_tuple(axis, out_ndim)
    598
    599     shape_it = iter(a.shape)

D:\RuanJianAnZhunangWeiZhi\anaconda\anaconda3\envs\py3.6\lib\site-packages\numpy\core\numeric.py in normalize_axis_tuple(axis, ndim, argname, allow_duplicate)
   1325             pass
   1326     # Going via an iterator directly is slower than via list comprehension.
-> 1327     axis = tuple([normalize_axis_index(ax, ndim, argname) for ax in axis])
   1328     if not allow_duplicate and len(set(axis)) != len(axis):
   1329         if argname:

D:\RuanJianAnZhunangWeiZhi\anaconda\anaconda3\envs\py3.6\lib\site-packages\numpy\core\numeric.py in <listcomp>(.0)
   1325             pass
   1326     # Going via an iterator directly is slower than via list comprehension.
-> 1327     axis = tuple([normalize_axis_index(ax, ndim, argname) for ax in axis])
   1328     if not allow_duplicate and len(set(axis)) != len(axis):
   1329         if argname:

AxisError: axis 3 is out of bounds for array of dimension 3

实例:

素材:注意程序中用的是相对路径

import tensorflow as tf
tf.compat.v1.disable_eager_execution()
import numpy as np
from tensorflow.keras.preprocessing import image
from skimage import io

image_path="../images/lena.jpg"

# 加载图像
img = io.imread(image_path)

# 显示图像
io.imshow(img)
io.show()

# 图像预处理
x = image.img_to_array(img)
y = np.expand_dims(x, axis = 0)

print("x:", x)
print("y:", y)

print(x.shape)
print(y.shape)

结果:

D:\RuanJianAnZhunangWeiZhi\anaconda\anaconda3\envs\py3.6\python.exe E:\Python_files\Tensorflow_dl\TensorFlowProgramming\TensorFlowProgramming\ch6CNN\pool_op_demo2.py 
2023-04-04 08:24:33.571665: W tensorflow/stream_executor/platform/default/dso_loader.cc:55] Could not load dynamic library 'cudart64_101.dll'; dlerror: cudart64_101.dll not found
2023-04-04 08:24:33.571878: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine.
x: [[[221. 139. 125.]
  [221. 139. 125.]
  [222. 139. 125.]
  ...
  [223. 136. 108.]
  [216. 131. 102.]
  [211. 126.  95.]]

 [[221. 139. 125.]
  [221. 139. 125.]
  [222. 139. 125.]
  ...
  [225. 139. 112.]
  [217. 132. 103.]
  [211. 126.  97.]]

 [[223. 140. 124.]
  [223. 140. 124.]
  [223. 140. 124.]
  ...
  [225. 141. 117.]
  [214. 130. 104.]
  [206. 122.  96.]]

 ...

 [[ 81.  26.  58.]
  [ 83.  28.  60.]
  [ 84.  27.  59.]
  ...
  [161.  72.  90.]
  [163.  75.  91.]
  [163.  75.  91.]]

 [[ 80.  25.  56.]
  [ 82.  27.  58.]
  [ 83.  26.  58.]
  ...
  [164.  76.  92.]
  [167.  76.  93.]
  [167.  76.  93.]]

 [[ 80.  25.  56.]
  [ 81.  26.  57.]
  [ 82.  25.  57.]
  ...
  [166.  78.  94.]
  [169.  78.  95.]
  [169.  78.  95.]]]
y: [[[[221. 139. 125.]
   [221. 139. 125.]
   [222. 139. 125.]
   ...
   [223. 136. 108.]
   [216. 131. 102.]
   [211. 126.  95.]]

  [[221. 139. 125.]
   [221. 139. 125.]
   [222. 139. 125.]
   ...
   [225. 139. 112.]
   [217. 132. 103.]
   [211. 126.  97.]]

  [[223. 140. 124.]
   [223. 140. 124.]
   [223. 140. 124.]
   ...
   [225. 141. 117.]
   [214. 130. 104.]
   [206. 122.  96.]]

  ...

  [[ 81.  26.  58.]
   [ 83.  28.  60.]
   [ 84.  27.  59.]
   ...
   [161.  72.  90.]
   [163.  75.  91.]
   [163.  75.  91.]]

  [[ 80.  25.  56.]
   [ 82.  27.  58.]
   [ 83.  26.  58.]
   ...
   [164.  76.  92.]
   [167.  76.  93.]
   [167.  76.  93.]]

  [[ 80.  25.  56.]
   [ 81.  26.  57.]
   [ 82.  25.  57.]
   ...
   [166.  78.  94.]
   [169.  78.  95.]
   [169.  78.  95.]]]]
(512, 512, 3)
(1, 512, 512, 3)

Process finished with exit code 0

参考文章:

https://blog.csdn.net/qq_37924224/article/details/119816771

https://blog.csdn.net/hong615771420/article/details/83448878

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/6133.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang每日一练(leetDay0025)

目录 73. 矩阵置零 Set Matrix Zeroes &#x1f31f;&#x1f31f; 74. 搜索二维矩阵 Search A 2d-Matrix &#x1f31f;&#x1f31f; 75. 颜色分类 Sort Colors &#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题专栏 &#x1f31f; Golang每日一练 专栏 Pyth…

大数据领域的发展及其对现实世界的价值

大数据已经成为全球各行业领域不可或缺的一部分&#xff0c;并且其应用不断涌现。尽管很多人最初对“大数据”这一术语表示怀疑和不信任&#xff0c;但大数据技术已经确立了稳定的发展方向。根据调研机构的预测&#xff0c;到2027年&#xff0c;全球大数据市场规模将达到1090亿…

PostgreSQL之Full VACUUM

前面我们介绍了PG中的Concurrent VACUUM&#xff0c;详细请参考PostgreSQL之Concurrent VACUUM&#xff0c;这篇我们继续来了解一下PG中的Full VACUUM。 我们了解Concurrent VACUUM允许在执行的时候仍然允许对正在VACUUM的表进行读取操作&#xff0c;因此这个操作对业务的影响也…

学成在线:第五天(p82-p93)

1、面试&#xff1a;在分片广播中&#xff0c;如何保证多个执行器不会重复执行任务&#xff1f; &#xff08;虽然有分片序号&#xff0c;但是加入只有两个执行器&#xff0c;有很多任务&#xff0c;这两个执行器得到的分片序号也就只是两个数字&#xff0c;后面的分片是如何能…

蓝桥杯刷题冲刺 | 倒计时11天

作者&#xff1a;指针不指南吗 专栏&#xff1a;蓝桥杯倒计时冲刺 &#x1f43e;马上就要蓝桥杯了&#xff0c;最后的这几天尤为重要&#xff0c;不可懈怠哦&#x1f43e; 文章目录1.质因子2.蓝桥王国1.质因子 题目 链接&#xff1a; 1545. 质因子 - AcWing题库 给定一个整数 N…

NexNoSQL Client:Elasticsearch、Redis、MongoDB三合一的可视化客户端管理工具

背景&#xff1a; 工作中我们使用了Elasticsearch作为存储&#xff0c;来支持内容的搜索&#xff0c;Elasticsearch这个软件大家都耳熟能详&#xff0c;它是一个分布式、高扩展、高实时的搜索与数据分析引擎&#xff0c;不仅仅支持文本索引&#xff0c;还支持聚合操作&#xf…

Java面向对象部分 个人学习记录

注:此博客是个人学习记录&#xff0c;会有错的地方&#xff0c;面向对象部分我可能会画很多图来加深我的理解 不引出了&#xff0c;直接开始 class Dog{String name;int age;String type;public Dog(String name,int age,String type){this.namename;this.ageage;this.typetyp…

全志V3S嵌入式驱动开发(准备)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 要学好嵌入式&#xff0c;其实最好自己可以画板子、调试板子、写软件、调试软件这样来学习。简单的51单片机、stm32这样的mcu或许画起来不是很复杂…

Python 自动化指南(繁琐工作自动化)第二版:零、前言

关于作者 Al Sweigart 是一名软件开发人员和技术书籍作者。Python 是他最喜欢的编程语言&#xff0c;他是该语言的几个开源模块的开发者。他的其他书籍可以在他的网站上根据知识共享许可免费获得。他的猫现在重 11 磅。 关于技术评审 Philip James 从事 Python 工作已经超过…

MobTech 秒验|本机号码一键登录会泄露隐私吗

本机号码一键登录是一种新型的应用登录方式&#xff0c;它可以利用运营商的数据网关认证能力&#xff0c;实现手机号免密登录&#xff0c;提高用户体验和转化率&#xff0c;降低验证成本和流失率。本机号码一键登录支持三大运营商号码认证&#xff0c;3秒内完成手机号验证&…

Java小课堂:自定义注解(案例:自定义DecimalFormat注解)

文章目录 引言I 预备知识1.1 元注解1.2 Target注解的ElementType枚举1.3 Retention注解的RetentionPolicy枚举II 自定义注解2.1 基本条件2.2 注解自定义属性的格式III 案例3.1 自定义DecimalFormat注解3.2 自定义json序列化解析引言 需求: 编辑费率限制的值时填写几位就保存几…

如何在前端中实现精美的图片和文字的垂直对齐

&#x1f31f;所属专栏&#xff1a;前端只因变凤凰之路 &#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚 &#x1f62e;前言&#xff1a;该系列将持续更新前端的相关学习笔记&#xff0c;欢迎和我一样的小白订阅&#xff0c;一起学习共同进步~&#x1f449;文章…

关于线性与条带化下LVM增加磁盘数据分布的讨论

关于线性与条带化下LVM增加磁盘数据分布的讨论一、环境介绍二、线性模式逻辑卷创建逻辑卷删除三、条带化逻辑卷创建逻辑卷删除LVM有两种模式&#xff1a;线性模式&#xff1a;先写满组成线性逻辑卷的第一个物理卷&#xff0c;再向第2个物理卷中写入数据&#xff0c;以此类推&am…

必看>>>>Linux数据库被其他服务器远程访问(修改权限、开设端口)

目录 一&#xff1a;修改权限 1.1 进入Linux数据库 1.2 修改数据库的远程连接权限 1.2.1 数据库远程权限修改命令 1.2.2 数据库远程权限查看命名 1.3 给Linux机添加端口 1.4 远程数据库连接 注意mysql中的中英文输入 一&#xff1a;修改权限 1.1 进入Linux数据库 文章…

【职场热点】软件测试岗位,真正达到月收入1万以上的有多少

在某一线城市相亲角&#xff0c;有位阿姨自称孩子是程序员、36岁、月入3万8&#xff0c;并直言“月入1万如讨饭”&#xff0c;引来大量互联网人自嘲式认领“乞丐”身份。今年2月&#xff0c;“月收入一万”的鄙视链压力给到了二线城市&#xff0c;有位入行2年的软件测试员发帖称…

1-python基础

1.字面量 被写在代码中固定的值 2.注释 # 单行注释""" 多行注释1&#xff1a;三对双引号 """ 多行注释2&#xff1a;三对单引号 3.变量与输出 age10 # 变量赋值 print("我今年",age,"岁") &#xff08;1&#xff09;pri…

Java数据类型与变量

1.字面常量 public class Demo{ public static void main(String[] args){ System.Out.println("hello world!"); System.Out.println(300); System.Out.println(3.1415926); System.Out.println(T); System.Out.println(true); System.Out.println(false); } 其中…

【CocosCreator入门】CocosCreator组件 | ParticleSystem (粒子)组件

Cocos Creator 是一款流行的游戏开发引擎&#xff0c;具有丰富的组件和工具&#xff0c;其中ParticleSystem组件是一个用于创建粒子效果的工具&#xff0c;可用于实现火花、爆炸、雪花等效果。 目录 一、组件属性 二、组件使用 三、效果演示 四、性能优化 一、组件属性 属性…

迅为3A5000_7A2000工控主板,龙芯自主指令集架构全国产工业级板卡性能

迅为iTOP-3A5000开发板核心板底板方式&#xff0c;底板资料开源&#xff0c;提供底板的原理图和PCB工程文件&#xff0c;可以根据需求定制属于自己的开发板。 核心板也支持工业级核心板定制开发。 根据二进制翻译功能使用&#xff0c;可流畅运行WIN和Android系统APP。 支持Loo…

renderdoc resource manager说明

*写在前面 只针对renderdoc opengl es 场景进行说明&#xff0c; vukan的没有&#xff0c;不过其实应该也差不多啦&#xff0c;若有必要后面再考虑补上。本文使用 文字图代码 的方式叙述&#xff0c;若只想了解原理过程&#xff0c;可忽略代码部分&#xff0c; 由于renderdoc代…