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

如何在NumPy中创建左下至右上为1的反对角单位矩阵?

在NumPy中创建反对角单位矩阵的方法

嘿,这个问题问得很到位!其实NumPy确实有现成的内置方法可以轻松生成反对角单位矩阵,不用自己手动循环赋值(当然手动实现也没问题,不过内置方法更简洁)。下面给你详细讲讲:

一、内置函数实现

这两种方法都是利用NumPy自带的函数组合实现,代码简洁高效:

  • 方法1:用np.eye()结合行反转切片
    np.eye(n)会生成一个n×n的单位矩阵,通过行反转切片[::-1]可以直接将主对角线翻转成反对角线:

    import numpy as np
    
    n = 5  # 指定矩阵维度
    anti_diag_mat = np.eye(n)[::-1]
    print(anti_diag_mat)
    

    运行后会输出5×5的反对角单位矩阵,左下到右上的对角线上全是1,其余位置为0。

  • 方法2:用np.fliplr()翻转单位矩阵
    np.fliplr()是专门用于矩阵左右翻转的函数,对单位矩阵执行这个操作后,就能得到反对角单位矩阵:

    anti_diag_mat = np.fliplr(np.eye(n))
    print(anti_diag_mat)
    

    这个方法和第一种效果完全一致,选哪个全看个人习惯。

二、手动实现(作为参考)

虽然你提到已经知道手动实现的方式,但还是简单写一下供你对照:

n = 5
anti_diag_mat = np.zeros((n, n))
for i in range(n):
    anti_diag_mat[i, n - 1 - i] = 1
print(anti_diag_mat)

思路就是先创建一个全零矩阵,然后遍历每一行,把对应反对角线位置的元素设为1即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:49:15