numpy - динамически выбирать по нескольким равенствам - PullRequest
0 голосов
/ 02 апреля 2020

Я хочу выбрать элементы массива в соответствии с несколькими условиями, но динамически.

Я бы определил их следующим образом:

L = [1,2,5]
X = np.random.choice(10, size=(15,))
X[X in L]

Я знаю, что могу сделать это как X[(X==1)|(X==2)|(X==5)] но мой вопрос касается динамически изменения L, предположим, что это произвольный список целых чисел.

index = np.zeros_like(X, dtype=np.bool)
for i in L:
    index[i] = 1
X[index]

Есть ли лучший способ выполнить это?

1 Ответ

1 голос
/ 02 апреля 2020

IIU C - вы хотите получить все элементы из списка ввода X, которые также принадлежат L.

. Вы можете использовать numpy.isin(...):

X[np.isin(X, L)]

np.isin(X, L) по сути возвращает массив логических значений для каждого элемента X, имеющего True, если он принадлежит L и False в противном случае.

https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.isin.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...