关于numpy中np.expand_dims方法的理解

这篇博客详细解释了在计算机科学中如何通过设置axis参数来改变数组的维度,从二维矩阵到三维矩阵的转换过程。介绍了axis为0、1、2时,矩阵的变化及其在坐标系中的位置变化。通过实例展示了数字在不同维度下的分布,帮助读者理解这一概念。
摘要由CSDN通过智能技术生成

这个东西的主要作用,就是增加一个维度。



现在我们假设有一个数组A,数组A是一个两行三列的矩阵。大小我们记成(2,3)。

先明白一个常识,计算机中计数,一般是从0开始的。

所以(2,3)这个两行三列的矩阵,

它的第“0”维,就是这个“2”行;第“1”维,就是这个“3”列。

这个函数的作用,就是在第“axis”维,加一个维度出来,原先的“维”,推到右边去。



比如我们设置axis为0,那A矩阵的大小就变成了(1,2,3),就从2*3的二维矩阵变成了一个1*2 *3的三维矩阵。如果设置axis为1,矩阵大小就变成了(2,1,3),变成了一个2*1*3的三维矩阵。axis为2的时候,就变成(2,3,1)啦。

那么,说了这么多,矩阵的形式变了,那么矩阵里面的数字怎么变的呢?





举个例子:

假设现在矩阵是2*3的矩阵,六个数字

1 2 3

4 5 6

初中和高中所学的平面直角坐标系和空间直角坐标系还记得吗?

我们设置axis为0,矩阵从2*3的二维矩阵变成了1*2*3的三维矩阵。

我们假设原来是一个二维平面,横坐标为x,纵坐标为y, 2*3的矩阵在这个XOY平面上。此时就是一个二维矩阵,(根本就没有z轴)

而变换以后,现在变成了三维矩阵,变成了一个空间直角坐标系,,有x,y,z三个轴。

原先的2*3的矩阵从XOY平面移动到了YOZ平面

(我们把原先的矩阵当成一个平摊在桌面上的纸片,变换以后,相当于给它立起来了),然后原先的X轴的“厚度”为1,此时虽然形式还是原来的数字,但是多了一个轴。



那如果设置axis为1呢?

就是从XOY面的矩阵,给它立起来到XOZ平面,在Y轴的厚度为1。

设置axis为2,就是从XOY面的矩阵,还是放在XOY面上。但是这时候多了一个z轴,(相当于这个操作之后可以在桌面的纸片上面,叠加新的纸片了)



——————————————————————————————————

这时候我们再看矩阵

1 2 3

4 5 6

原先A[0][0]对应1,A[0][1]对应2,A[0][2]对应3,A[1][0]对应4……

如果设置axis为0,这时候矩阵从XOY平面移动到了YOZ平面,X轴只有一个值

那么,变换后的矩阵A'的第一个维度,只有一个值,就只能是0

A'[0][0][0]是1,A[0][0][1]是2,A[0][0][2]是3

A'[0][1][0]是4,A[0][1][1]是5,A[0][1][2]是6

A'[0][0]不指定第三维,那么就是[1,2,3]

A'[0][1]不指定第三维,就是[4,5,6]

那A[1][0][0]……呢?不好意思,没有,因为第一维只能取一个数,就是0。

axis为1,2都同理。



可能说的有点啰嗦了。

如果是三维矩阵变成四维矩阵,那就不好直接想象样子了。但是道理是一样的。
 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值