关于numpy中数组维度[2,2,3]和[3,2,2]区别

今天在对rgb图片进行选取的时候,发现图片是一个向量(也就是只有一个维度),我把它reshape((,3)),发现颜色错位。
只能先reshape((3,)).transpose((0,2,1)),也就是先切3份,再按图片大小进行转化。

np.ones([2,2,3])和np.ones([3,2,2])形状

np.ones((2,2,3))

如下所示,可以看出numpy对(2,2,3)解读是先2->2->3,也就是先划分成2份,在对每一份再划分2份(这时有四份),再对每一份划分3份(这时有12份了)。从这里来看,也就是最小的那个集合有3份(三个数),

array([[[1., 1., 1.],
        [1., 1., 1.]],

       [[1., 1., 1.],
        [1., 1., 1.]]])

np.ones((3,2,2))

如下所示,可以看出numpy对(3,2,2)解读是先3->2->2,也就是先划分成3份,在对每一份再划分2份(这时有六份),再对每一份划分2份(这时有12份了)。从这里来看,也就是最小的那个集合有2份(三个数),

array([[[1., 1.],
        [1., 1.]],

       [[1., 1.],
        [1., 1.]],

       [[1., 1.],
        [1., 1.]]])

你可能感兴趣的:(关于numpy中数组维度[2,2,3]和[3,2,2]区别)