Как вернуть индекс 1-го массива или тензора в зависимости от условий - PullRequest
0 голосов
/ 17 марта 2020

Как найти индекс 1-го тензора или массива, вернув индекс, соответствующий условиям, удовлетворяющим ниже. Прямо сейчас список, который возвращается, имеет длину 80, но должен иметь длину 20. Таким образом, должен быть индекс j, соответствующий каждой точке x. Кроме того, я не уверен, как это сделать, но также имеет смысл возвращать самые большие индексы, соответствующие v_j

test = []
torch.manual_seed(0)
data = np.random.uniform(0, 1, [20, ])
x = torch.from_numpy(data).float()
x, _ = torch.sort(x)
v = [.1, .3, .6, .9, 1]
v = torch.FloatTensor(v)
v, _ = torch.sort(v)
for i in range(len(x)):
    for j in range(len(v) - 1):
        if 0 < x[i] < v[0]:
            test.append(j)
        elif v[0] < x[i] < v[1]:
            test.append(j)
        elif v[1] < x[i] < v[2]:
            test.append(j)
        elif v[2] < x[i] < v[3]:
            test.append(j)
        elif v[3] < x[i] < v[4]:
            test.append(j)

Код Psuedo для идеи

test = []
torch.manual_seed(0)
data = np.random.uniform(0, 1, [20, ])
x = torch.from_numpy(data).float()
x, _ = torch.sort(x)
v = [.1, .3, .6, .9, 1]
v = torch.FloatTensor(v)
v, _ = torch.sort(v)
for i in range(len(x)):
    for j in range(len(v) - 1):
        if 0 < x[i] < v[0]:
            test.append(j)
        else:
            pass
            # return the largest index in j such that v_j < x

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