从3D数组获取2D索引?

时间:2019-11-13 21:51:53

标签: python arrays numpy indexing

我有一个(7 x 325 x 255)的numpy数组。七个是与图像不同的波段,而325和448是行和列(即像素)。 X是我的设置示例。

     x = x = np.random.randint(5, size=(7,325,255))

我正在尝试使用所有7个波段中的np.where()创建一个二维索引(325,255),其中值等于我的无数据参数-9999。我的论据如下:

    y = np.asarray(np.where(x == -9999))

但是,当我打印y的形状时,会得到以下内容,应该是(325,255):

    (3, 580125)

有关如何解决此问题的任何建议或想法? 非常感谢!

1 个答案:

答案 0 :(得分:1)

使用any汇总频段。这将产生所需的二维布尔数组:

y = np.any(x == -9999, axis=0)