НАСТРОЙКА
У меня есть диагональная матрица NxN, и я уменьшаю матрицу на 1x1 на каждой итерации.
indices = np.arange(0, np.size(n_n_matrix, 0)).tolist()
for iter in range(0, N-K)
opt_indices = criterion(n_n_matrix)
lost_index = [i for i in indices if i not in opt_indices][0]
n_n_matrix = np.delete(traj_dist_matrix, lost_index, axis=0)
n_n_matrix = np.delete(traj_dist_matrix, lost_index, axis=1)
Я делаю это до тех пор, пока у меня не будет диагональной матрицы KxK. Как я могу отслеживать неудаленные индексы с точки зрения их положения в исходной матрице NxN?
ОШИБКА
Я терплю неудачу, пытаясь:
lost_indices = [], list_indices_iter = []
>>>loop above<<<
count_1 = sum(lost_index >= idx for idx in lost_indices_iter)
count_2 = sum(lost_index + count_1 >= idx for idx in lost_indices_iter) - count_1
...
lost_indices.append(lost_index + count_1 + count_2 ...)
lost_indices_iter.append(lost_index)
left_opt_indices = [i for i in indices if i not in lost_indices]
СОКРАЩЕННАЯ ПРОБЛЕМА
Моя проблема иллюстрируется следующим примером: если я удаляю индекс i, следующая матрица сжимается. Если я затем удалю индекс j>=i на следующей итерации, мне нужно будет добавить 1 к j, потому что его позиция уменьшилась по сравнению с исходной. Матрица NxN. Если я затем удалю индекс k=>j, мне нужно будет учесть два предыдущих изменения и так далее.