Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从3D数组中获取2D索引?_Python_Arrays_Numpy_Indexing - Fatal编程技术网

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

Python 从3D数组中获取2D索引?,python,arrays,numpy,indexing,Python,Arrays,Numpy,Indexing,我有一个numpy数组,它是(7 x 325 x 255)。这七个波段与图像不同,325和448是行和列(即像素)。X是我设置的一个示例 x = x = np.random.randint(5, size=(7,325,255)) 我正在尝试使用所有7个标注栏中的np.where()创建一个二维索引(325255),其中的值等于我的无数据参数-9999。我的论点如下: y = np.asarray(np.where(x == -9999)) 但是,当我打印y的形状时,我得到

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

     x = x = np.random.randint(5, size=(7,325,255))
我正在尝试使用所有7个标注栏中的np.where()创建一个二维索引(325255),其中的值等于我的无数据参数-9999。我的论点如下:

    y = np.asarray(np.where(x == -9999))
但是,当我打印y的形状时,我得到以下结果,应该是(325255):

关于如何解决这个问题有什么建议或想法吗?
非常感谢

使用
any
在条带上聚合。这将生成所需的二维布尔数组:

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

你想得到所有频带都等于特殊值的索引还是任何一个?我不完全确定我在回答这个问题。。。所以你有一个三维数组x(长=7,宽=325,高=255),它包含一组值,其中一个是x(长,宽,高)=-9999。您需要生成一些“y”数组,可以在继承3d数组宽度和高度的2d数组中表示。您希望用什么填充y数组?它应该包含什么信息?@Matthias它可能是任何的,对不起,我应该澄清一下。@MichaelGreen最终产品是一个索引,它显示了我在任何频带上的-9999值。@fotxoa所以如果我理解正确,你想要一个布尔2d数组,如果出现-9999,它是真的吗?
y = np.any(x == -9999, axis=0)