Создайте логический массив с True для любого значения между двумя записями в определенном массиве.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Создайте логический массив с True для любого значения между двумя записями в определенном массиве.

Сообщение Anonymous »

У меня есть тензор idx, который имеет целые числа от 0 до 27, например:

Код: Выделить всё

idx = torch.tensor([9, 0, 6, 5, 2, 1, 10, 18, 26, 0, 11])
Я хочу создать еще один массив/тензор с логическими значениями. Я хочу, чтобы значение было True, когда оно находится строго между 1 (слева) и 0 (справа) или концом тензора:

Код: Выделить всё

flag = torch.tensor([False, False, False, False, False, False, True, True, True, False, False])
Обратите внимание: если 0 не появляется после 1, мне все равно нужно True до конца тензора. То есть

Код: Выделить всё

idx = torch.tensor([9, 0, 6, 5, 2, 1, 10, 18])
flag = torch.tensor([False, False, False, False, False, False, True, True])
Есть ли быстрый способ сделать это без дорогостоящего цикла for? Или, если цикл for неизбежен, какой самый эффективный способ сделать это?
Важно, мой idx всегда будет иметь 0 и 1 Через определенные промежутки времени и они всегда будут чередоваться. В частности, между 1 и 0 или между 0 и 1 всегда имеется ровно 3 (в данном случае) элемента.

Подробнее здесь: https://stackoverflow.com/questions/787 ... -a-certain
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»