Добавление пропущенных значений в соответствии с индексом - PullRequest
0 голосов
/ 08 марта 2020

Скажите, если у меня есть тензор

values = torch.tensor([5, 3, 2, 8])

и соответствующий index к values

index = torch.tensor([0, 2, 4, 5])

и предполагается, что я хочу вставить в отсутствующий индекс (1 and 3) с фиксированным значением (100), таким образом, что я получаю

values = torch.tensor([5, 100, 3, 100, 2, 8])

Есть ли векторизованный способ сделать это в PyTorch (или numpy)?

1 Ответ

0 голосов
/ 08 марта 2020

Вы можете сначала заполнить его 100, а затем заполнить его исходными значениями.

в pytorch

import torch

result = torch.empty(6, dtype = torch.int32).fill_(100)
values = torch.tensor([5, 3, 2, 8], dtype = torch.int32)
index = torch.tensor([0, 2, 4, 5])
result[index] = values
print(result)

в numpy

import numpy as np

result = np.full((6,), 100)
index = np.array([0, 2, 4, 5])
values = np.array([5, 3, 2, 8])
result[index] = values
print(result)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...