Поиск нескольких индексов, но массив всегда имеет длину 1 - PullRequest
0 голосов
/ 27 февраля 2019

Это кажется тривиальным (опять же), но меня озадачило.

Мне нужно найти индексы нескольких значений в массиве numpy.Я могу сделать это с where и isin, но полученный ответ всегда имеет длину 1 независимо от того, сколько индексов найдено.Пример

import numpy as np

a = [1,3,5,7,9,11,13,15]
b = [1,7,13]

x = np.where(np.isin(a,b))

print(x)
print(len(x))

это возвращает

(array([0, 3, 6]),)
1

Я думаю, это потому, что массив - это один элемент внутри кортежа.Как мне вернуть только массив?

1 Ответ

0 голосов
/ 27 февраля 2019

Просто используйте

x = np.where(np.isin(a,b))[0]

, чтобы получить то, что вы ожидаете.
Как указывает hpaulj в комментариях where возвращает кортеж с одним массивом для каждого измерения входного массива, в этом случае естьтолько один, поэтому x - это кортеж длины один.

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