Возвратите индексы массивов в двумерном массиве, который удовлетворяет условию - PullRequest
1 голос
/ 21 мая 2019

У меня большой двумерный массив NumPy и я хочу найти индексы 1D-массивов внутри него, которые удовлетворяют условию: например, имеют по крайней мере значение, превышающее заданный порог x.

Я уже могу сделать это следующим образом, но есть ли более короткий и эффективный способ сделать это?

import numpy

a = numpy.array([[1,2,3,4,5], [1,2,3,4,20], [1,2,2,4,5]])

indices = []
i = 0
x = 10
for item in a:
    if any(j > x for j in item):
        indices.append(i)
    i += 1

print(indices) # gives [1]

1 Ответ

4 голосов
/ 21 мая 2019

Вы можете использовать встроенные логические операции numpy:

import numpy as np
a = np.array([[1,2,3,4,5], [1,2,3,4,20], [1,2,2,4,5]])

indices = np.argwhere(np.any(a > 10, axis=1))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...