python - 跟踪最佳索引,同时每次迭代将矩阵减少 1x1
问题描述
设置
我有一个 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,我需要考虑之前的两个更改,依此类推。
解决方案
更新:我的一个朋友给了我一个提示。它是一个两班轮。
tracker_original_indices = np.arange(0, np.size(traj_dist_matrix, 0))
tracker_original_indices = np.delete(tracker_original_indices, lost_index, axis=0)
推荐阅读
- javascript - 浏览器中的 babel 和 Monaco
- r - 尝试在 R Studio 中打开在其外部的函数中创建的对象
- postgresql - MikroORM 未连接到我的 PostgreSQL 服务器,出现错误: throw new ERR_INVALID_ARG_TYPE
- javascript - 找不到模块:导入 Firebase 管理员时无法解析“child_process”-NextJS
- python - 使用 Telethon 向电报频道发送消息并获取移动通知
- python - pandas:使用带有掩码的 .loc 分配给多索引
- r - R - 季节性时间序列的线性回归模型
- java - Android Studio/java - 以音频幅度振动
- utf-8 - 为什么捂脸表情♀️后面跟着U+200D♀
- android - 为什么要使用 WebRTC/类似库?