无需使用NumPy获取矩阵上三角部分的索引方法咨询
获取矩阵上三角(不含主对角线)的索引
你可以通过嵌套循环直接遍历并收集符合条件的索引,不需要依赖numpy的方法。以下是实现代码:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] upper_tri_indices = [] for i in range(len(matrix)): # 遍历当前行中列索引大于行索引的位置,跳过主对角线 for j in range(i + 1, len(matrix[i])): upper_tri_indices.append((i, j)) print(upper_tri_indices) # 输出: [(0, 1), (0, 2), (1, 2)]
如果需要同时获取索引和对应元素的值,可以扩展代码:
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] upper_tri_with_values = [] for i in range(len(matrix)): for j in range(i + 1, len(matrix[i])): upper_tri_with_values.append( ((i, j), matrix[i][j]) ) print(upper_tri_with_values) # 输出: [((0, 1), 2), ((0, 2), 3), ((1, 2), 6)]
逻辑说明
- 外层循环
i遍历矩阵的行索引 - 内层循环
j从i+1开始,确保列索引始终大于行索引,这样就只覆盖上三角区域(排除主对角线和下三角) - 每遍历到一个符合条件的位置,就将
(i,j)索引元组存入列表
内容的提问来源于stack exchange,提问作者user1408865
相关产品推荐
相关产品推荐

