python数组[...,1]的用法

记录一下数组[...,1]所表达的意思

例如一个数组:

C = np.arange(240).reshape(10,8,3)

输出C

>>> c
array([[[  0,   1,   2],
        [  3,   4,   5],
        [  6,   7,   8],
        [  9,  10,  11],
        [ 12,  13,  14],
        [ 15,  16,  17],
        [ 18,  19,  20],
        [ 21,  22,  23]],

       [[ 24,  25,  26],
        [ 27,  28,  29],
        [ 30,  31,  32],
        [ 33,  34,  35],
        [ 36,  37,  38],
        [ 39,  40,  41],
        [ 42,  43,  44],
        [ 45,  46,  47]],

       [[ 48,  49,  50],
        [ 51,  52,  53],
        [ 54,  55,  56],
        [ 57,  58,  59],
        [ 60,  61,  62],
        [ 63,  64,  65],
        [ 66,  67,  68],
        [ 69,  70,  71]],

       [[ 72,  73,  74],
        [ 75,  76,  77],
        [ 78,  79,  80],
        [ 81,  82,  83],
        [ 84,  85,  86],
        [ 87,  88,  89],
        [ 90,  91,  92],
        [ 93,  94,  95]],

       [[ 96,  97,  98],
        [ 99, 100, 101],
        [102, 103, 104],
        [105, 106, 107],
        [108, 109, 110],
        [111, 112, 113],
        [114, 115, 116],
        [117, 118, 119]],

       [[120, 121, 122],
        [123, 124, 125],
        [126, 127, 128],
        [129, 130, 131],
        [132, 133, 134],
        [135, 136, 137],
        [138, 139, 140],
        [141, 142, 143]],

       [[144, 145, 146],
        [147, 148, 149],
        [150, 151, 152],
        [153, 154, 155],
        [156, 157, 158],
        [159, 160, 161],
        [162, 163, 164],
        [165, 166, 167]],

       [[168, 169, 170],
        [171, 172, 173],
        [174, 175, 176],
        [177, 178, 179],
        [180, 181, 182],
        [183, 184, 185],
        [186, 187, 188],
        [189, 190, 191]],

       [[192, 193, 194],
        [195, 196, 197],
        [198, 199, 200],
        [201, 202, 203],
        [204, 205, 206],
        [207, 208, 209],
        [210, 211, 212],
        [213, 214, 215]],

       [[216, 217, 218],
        [219, 220, 221],
        [222, 223, 224],
        [225, 226, 227],
        [228, 229, 230],
        [231, 232, 233],
        [234, 235, 236],
        [237, 238, 239]]])
>>> c.shape
(10, 8, 3)

那么C[...,0],C[...,1],C[...,2]就表示输出他的相应列,即对应第0 列,第一列, 第二列即:

>>> c[...,1]
array([[  1,   4,   7,  10,  13,  16,  19,  22],
       [ 25,  28,  31,  34,  37,  40,  43,  46],
       [ 49,  52,  55,  58,  61,  64,  67,  70],
       [ 73,  76,  79,  82,  85,  88,  91,  94],
       [ 97, 100, 103, 106, 109, 112, 115, 118],
       [121, 124, 127, 130, 133, 136, 139, 142],
       [145, 148, 151, 154, 157, 160, 163, 166],
       [169, 172, 175, 178, 181, 184, 187, 190],
       [193, 196, 199, 202, 205, 208, 211, 214],
       [217, 220, 223, 226, 229, 232, 235, 238]])
>>> c[...,2]
array([[  2,   5,   8,  11,  14,  17,  20,  23],
       [ 26,  29,  32,  35,  38,  41,  44,  47],
       [ 50,  53,  56,  59,  62,  65,  68,  71],
       [ 74,  77,  80,  83,  86,  89,  92,  95],
       [ 98, 101, 104, 107, 110, 113, 116, 119],
       [122, 125, 128, 131, 134, 137, 140, 143],
       [146, 149, 152, 155, 158, 161, 164, 167],
       [170, 173, 176, 179, 182, 185, 188, 191],
       [194, 197, 200, 203, 206, 209, 212, 215],
       [218, 221, 224, 227, 230, 233, 236, 239]])
>>> c[...,0]
array([[  0,   3,   6,   9,  12,  15,  18,  21],
       [ 24,  27,  30,  33,  36,  39,  42,  45],
       [ 48,  51,  54,  57,  60,  63,  66,  69],
       [ 72,  75,  78,  81,  84,  87,  90,  93],
       [ 96,  99, 102, 105, 108, 111, 114, 117],
       [120, 123, 126, 129, 132, 135, 138, 141],
       [144, 147, 150, 153, 156, 159, 162, 165],
       [168, 171, 174, 177, 180, 183, 186, 189],
       [192, 195, 198, 201, 204, 207, 210, 213],
       [216, 219, 222, 225, 228, 231, 234, 237]])

如果使用np.expand_dims()将C[...,1]按-1轴展开,则会变成一个(10,8,1)数组

>>> b = np.expand_dims(c[...,1],axis = -1)
>>> b
array([[[  1],
        [  4],
        [  7],
        [ 10],
        [ 13],
        [ 16],
        [ 19],
        [ 22]],

       [[ 25],
        [ 28],
        [ 31],
        [ 34],
        [ 37],
        [ 40],
        [ 43],
        [ 46]],

       [[ 49],
        [ 52],
        [ 55],
        [ 58],
        [ 61],
        [ 64],
        [ 67],
        [ 70]],

       [[ 73],
        [ 76],
        [ 79],
        [ 82],
        [ 85],
        [ 88],
        [ 91],
        [ 94]],

       [[ 97],
        [100],
        [103],
        [106],
        [109],
        [112],
        [115],
        [118]],

       [[121],
        [124],
        [127],
        [130],
        [133],
        [136],
        [139],
        [142]],

       [[145],
        [148],
        [151],
        [154],
        [157],
        [160],
        [163],
        [166]],

       [[169],
        [172],
        [175],
        [178],
        [181],
        [184],
        [187],
        [190]],

       [[193],
        [196],
        [199],
        [202],
        [205],
        [208],
        [211],
        [214]],

       [[217],
        [220],
        [223],
        [226],
        [229],
        [232],
        [235],
        [238]]])
>>> b.shape
(10, 8, 1)
>>> f = c[...,1]
>>> f.shape
(10, 8)

你可能感兴趣的:(python,numpy,np数组,[...,1]用法)