np.random.standard_t(np.expand_dims 小白详解)
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结束语
画框框哪里真的是太麻烦了 ,都看到这了就点个赞和关注咯 。
如果有不清楚的地方 ,可以留言或者私信我 。感谢各位咯。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!