首页 文章

在3D numpy数组中查找位置,其中首先超出2D数组的值

提问于
浏览
0

我想在3D numpy数组中找到位置,其中2D数组首先超过3D数组中的值 . 例如 .

import numpy as np
array_3D = np.random.rand(10, 3, 3)
array_2D = np.random.rand(3, 3)

np.argmax(array_2D > array_3D)

我得到结果0,但我想要一个2D数组,即基本上每个网格单元的argmax结果 .

2 回答

  • 0

    如果我理解正确,那就是轴参数的用途:

    >>>np.argmax(array_2D > array_3D,axis=0)
    array([[1, 0, 0],
           [0, 2, 1],
           [0, 2, 0]])
    

    否则它会穿过扁平阵列 .

  • 2

    np.where(array_2D > array_3D) 将为您提供3个数组,其中包含您要查找的点的坐标 . 如果您正在寻找第一点:

    x =  np.where(array_2D > array_3D)[0][0]
    y =  np.where(array_2D > array_3D)[1][0]
    z =  np.where(array_2D > array_3D)[2][0]
    

    当然不是最优雅,思想,因为你不会直接有第一点 .

相关问题