使用过滤器数组在母数组中查找值索引

时间:2019-01-27 21:35:26

标签: python arrays numpy

我有两个数组:一个是母数组,另一个是“过滤数组”。母阵列是2D阵列(大小约为65行x147列)。过滤数组是一个具有母数组每一列的最大值(1行x 147列)的数组。我需要获取最大值的匹配行值。

我尝试使用

for index,k in np.ndenumerate(MotherArr):
    for val in FiltArr:
        if k == val:
            print(index) 

但是由于某种原因,我基本上得到了val的打印,之后打印了最后一个索引。

关于如何使它工作的任何想法?

1 个答案:

答案 0 :(得分:0)

您可以沿轴取数组的argmax

np.random.seed(0)
A = np.random.randint(0, 10, (5, 5))

# array([[5, 0, 3, 3, 7],
#        [9, 3, 5, 2, 4],
#        [7, 6, 8, 8, 1],
#        [6, 7, 7, 8, 1],
#        [5, 9, 8, 9, 4]])

maxima = A.max(1)
# array([7, 9, 8, 8, 9])

maxima_args = A.argmax(1)
# array([4, 0, 2, 3, 1], dtype=int64)