Кажется, я все еще борюсь с «> оператор «in» в numpy. Вот ситуация:
>>> a = np.random.randint(1, 10, (2, 2, 3))
>>> a
array([[[9, 8, 8],
[4, 9, 1]],
[[6, 6, 3],
[9, 3, 5]]])
Я хотел бы получить индексы тех триплетов, у которых второй элемент находится в (6, 8)
. Я интуитивно пробовал так:
>>> a[:, :, 1] in (6, 8)
ValueError: The truth value of an array with more than one element...
Моей конечной целью было бы вставить в эти позиции число, предшествующее числу, умноженному на два. Используя приведенный выше пример, a
должно стать:
array([[[9, 18, 8], #8 @ pos #2 --> replaced by 9 @ pos #1 by 2
[4, 9, 1]],
[[6, 12, 3], #6 @ pos #2 --> replaced by 6 @ pos #1 by 2
[9, 3, 5]]])
Заранее спасибо за совет и время!