np.expand_dims

目录

  • np.expand_dims
  • 前言
  • 第一层理解:这个axis会插在形状的哪里(知道形状会怎么改变)
  • 第二层理解:这个数组的内在会怎么改变(知道中括号[]会加在哪)
  • np.expand_dims有什么用
  • 参考网址
  • 结束语
  • 前言

    今天给同事讲解了一下np.expand_dims是做什么的。可以简单理解为扩展数组的形状

    Insert a new axis that will appear at the axis position in the expanded array shape(插入一个新轴,该轴将出现在展开的阵列形状中的轴位置)

    然后大家可以去分两层理解这个函数。

    第一层理解:这个axis会插在形状的哪里(知道形状会怎么改变)

    假设我们有个数组a

    import numpy as np
    a=np.array([[1,2,3],[4,5,6]])
    

    a的形状是

    如果axis=0,那么改变这个形状的1就会插在第一的位置。

    b=np.expand_dims(a, axis=0)
    


    如果axis=1,那么改变这个形状的1就会插在第二的位置。

    b=np.expand_dims(a, axis=1)
    


    如果axis=2(或者axis=-1),那么改变这个形状的1就会插在第三(或者最后)的位置。

    b=np.expand_dims(a, axis=2)
    

    第二层理解:这个数组的内在会怎么改变(知道中括号[]会加在哪)

    先说结论,会给插入维度后的每个值(或数组)加一个中括号【】。
    这里不理解没关系,看下面的例子。

    假设我们有个数组a

    import numpy as np
    a=np.array([[1,2,3],[4,5,6]])
    

    a的形状是

    如果axis=0,那么这中括号就会加在最前面的值,生成一个 [a]。

    b=np.expand_dims(a, axis=0)
    


    如果axis=2(或者axis=-1),那么这中括号就会加在第三个(最后)的每个值上,(也就是给所有数字都加了一个中括号)

    b=np.expand_dims(a, axis=2)
    

    如果axis=1,那么这中括号就会加在第二个(最后)的每个值上

    b=np.expand_dims(a, axis=1)
    

    np.expand_dims有什么用

    假设你有一张灰度图,读取之后的shape是(360,480)
    而模型的输入要求是(1,360,380)或者是(360,480,1)
    那么你就可以通过np.expand_dims(a, axis=0)或者np.expand_dims(a, axis=-1),将形状改变为满足模型的输入。

    参考网址

    https://docs.scipy.org/doc/numpy-1.17.0/numpy-ref-1.17.0.pdf
    np.expand_dims():https://blog.csdn.net/hong615771420/article/details/83448878

    结束语

    画框框哪里真的是太麻烦了,都看到这了就点个赞和关注咯。
    如果有不清楚的地方,可以留言或者私信我。感谢各位咯。
    西瓜6的啦啦啦

    来源:西瓜6

    物联沃分享整理
    物联沃-IOTWORD物联网 » np.expand_dims 小白详解

    发表回复