首页 > 解决方案 > 从 3D 数组中获取 2D 索引?

问题描述

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

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

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

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

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

    (3, 580125)

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

标签: pythonarraysnumpyindexing

解决方案


用于any在波段上聚合。这会产生所需的二维布尔数组:

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

推荐阅读