如何用NumPy创建指定的下三角全1矩阵?
使用NumPy创建指定下三角全1矩阵
你要的是主对角线及下方全为1、上方为0的下三角矩阵,用NumPy有两种简洁的库级实现方式:
方法一:利用np.tril(最直接)
np.tril是NumPy专门用于生成下三角矩阵的函数,默认保留主对角线及以下元素,其余置0。配合np.ones先创建全1数组,一步到位:
import numpy as np # 创建6行6列的目标矩阵 target_matrix = np.tril(np.ones((6, 6), dtype=int)) print(target_matrix)
运行后输出就是你要的矩阵:
[[1 0 0 0 0 0] [1 1 0 0 0 0] [1 1 1 0 0 0] [1 1 1 1 0 0] [1 1 1 1 1 0] [1 1 1 1 1 1]]
方法二:利用广播机制生成
通过行索引与列索引的比较,利用NumPy的广播特性生成布尔矩阵,再转为整数类型:
import numpy as np rows, cols = 6, 6 # 生成行索引矩阵和列索引矩阵,比较行索引 >= 列索引的位置 target_matrix = (np.arange(rows)[:, np.newaxis] >= np.arange(cols)).astype(int) print(target_matrix)
这种方法逻辑清晰,同样不需要手动编写循环,完全依赖NumPy的内置功能实现。
内容的提问来源于stack exchange,提问作者DialFrost
相关产品推荐
相关产品推荐

