Предположим, у вас есть следующий массив in0
. np.where(in0 > 0.9)
вернет вам кортеж индексов.
in0 = np.array([0.1, 0.5, 0.95, 1.3, 0.5, 0.2])
Это можно проверить, напечатав тип
print (type(np.where(in0 > 0.9)))
# <class 'tuple'>
Длина этого кортежа составляет 1
.
print (len(np.where(in0 > 0.9)))
# 1
Теперь вам нужны индексы массива in0
, которые удовлетворяют этому условию. Но np.where
возвращает кортеж.
print (np.where(in0 > 0.9))
# (array([2, 3]),)
Для получения списка индексов необходимо использовать индекс [0]
print (np.where(in0 > 0.9)[0])
# [2 3]
Теперь перейдем ко второму вопросу о [0][0]
. Рассмотрим следующий пример:
foo = in0[0:4] > 0.5
print (foo)
# array([False, False, True, True])
Теперь np.where
снова возвращает кортеж, как показано выше. Чтобы получить массив индексов, вам нужно получить к нему доступ с помощью индекса [0]
. Это вернет
preamble_location = np.where(foo)[0]
print (preamble_location)
# [2 3]
Теперь [0][0]
просто вернет первый элемент этого массива индексов, который является значением 2. Если вы используете [0][1]
, вы получите второй элемент, т.е. 3.
preamble_location = np.where(foo)[0][0]
print (preamble_location)
# 2