You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何将矩阵主对角线元素设置为零

Python实现矩阵主对角线元素赋值为0的方法

你给出的示例为NumPy数组格式,以下分NumPy数组和原生Python嵌套列表两种场景给出对应实现方案:

NumPy数组场景(优先使用内置方法)

  • 方案1:调用numpy.fill_diagonal(性能最高、代码最简)
    直接修改原数组,一行代码即可完成操作:
import numpy as np

# arr为你的原始NumPy矩阵
np.fill_diagonal(arr, 0)
  • 方案2:生成新数组,不修改原始数据
    如果需要保留原矩阵的内容,可以先拷贝再修改对应位置:
import numpy as np

new_arr = arr.copy()
n = new_arr.shape[0]
for i in range(n):
    new_arr[i, i] = 0

原生Python嵌套列表场景

如果你的矩阵是Python内置的嵌套列表结构,直接遍历修改对应位置即可:

# matrix为你的嵌套列表格式矩阵
n = len(matrix)
for i in range(n):
    matrix[i][i] = 0

小贴士:上述所有方案默认处理方阵的主对角线,如果你使用的是非方阵,numpy.fill_diagonal也可以自动适配行索引等于列索引的所有位置,不需要额外调整参数。

内容的提问来源于stack exchange,提问作者user12217822

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:57:03