获取 3d numpy 数组中的每一列

Getting each column in a 3d numpy array

我将图像从 RBG 转换为 CieLab,现在我需要使用 cielab 的值来计算一些方程式。 我一直在尝试获取数组中每一列的值。例如,如果我有:

列表=

   [[[ 65 234 169]
     [203 191 245]
     [ 36  58 196]
     [207 208 143]
     [251 208 187]]

    [[ 79  69 237]
     [ 13 124  42]
     [104 165  82]
     [170 178 178]
     [ 66  42 210]]

   [[ 40 163 219]
    [142  37 140]
    [ 75 205 143]
    [246  30 221]
    [ 16  98 102]]]

我怎样才能让它给我每一列的值,例如:

1st_column =

         65
         203
         36
         207
         251

         79
         13
         104
         170
         66
         
         40
         142
         75
         246
         16

谢谢。

尝试:

>>> m[:, :, 0]
array([[ 65, 203,  36, 207, 251],
       [ 79,  13, 104, 170,  66],
       [ 40, 142,  75, 246,  16]])

按照@mozway 的建议,您可以使用省略号语法:m[..., 0].

要了解更多信息,请阅读 How do you use the ellipsis slicing syntax in Python?

您还可以 flatten 您的数组:

>>> m[:, :, 0].flatten()
array([ 65, 203,  36, 207, 251,  79,  13, 104, 170,  66,  40, 142,  75, 246,  16])