记录一下数组[...,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)