Как найти индекс 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