np.triu()
—— 生成上三角矩阵(Upper Triangular Matrix)
numpy.triu()
用于返回给定矩阵的上三角部分,适用于 矩阵运算、线性代数、数据处理。
1. 语法
import numpy as np
np.triu(m, k=0)
参数
参数 | 作用 |
---|---|
m | 输入的 矩阵(2D 数组) |
k | 对角线偏移量(默认 0 ,>0 保留 k 条对角线以上元素,<0 保留 k 条对角线以下元素) |
返回值:
- 返回上三角矩阵,非上三角部分设为
0
。
2. 基本用法
2.1 生成上三角矩阵
import numpy as np
A = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
U = np.triu(A)
print(U)
📌 输出
[[1 2 3]
[0 5 6]
[0 0 9]]
📌 作用
np.triu(A)
保留对角线及上方元素,其他变0
。
2.2 指定 k
值(偏移对角线)
U1 = np.triu(A, k=1) # 仅保留对角线上方
U2 = np.triu(A, k=-1) # 允许对角线以下一行
print(U1)
print(U2)
📌 输出
[[0 2 3]
[0 0 6]
[0 0 0]]
[[1 2 3]
[4 5 6]
[0 8 9]]
📌 作用
k=1
仅保留上方元素(不含对角线)。k=-1
包含对角线及下方一行。
3. 创建空上三角矩阵
3.1 生成上三角全 1 矩阵
U = np.triu(np.ones((4, 4)), k=0)
print(U)
📌 输出
[[1. 1. 1. 1.]
[0. 1. 1. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]]
📌 作用
np.ones((4, 4))
创建全1
矩阵,np.triu()
提取上三角部分。
3.2 生成随机上三角矩阵
U = np.triu(np.random.randint(1, 10, (4, 4)))
print(U)
📌 作用
- 随机整数矩阵 →
np.random.randint(1, 10, (4, 4))
- 转换为上三角矩阵 →
np.triu()
4. np.triu()
vs np.tril()
函数 | 作用 |
---|---|
np.triu(m, k) | 返回上三角矩阵 |
np.tril(m, k) | 返回下三角矩阵 |
L = np.tril(A) # 下三角矩阵
print(L)
📌 推荐
- 上三角矩阵 →
np.triu(A)
- 下三角矩阵 →
np.tril(A)
5. 总结
✅ np.triu()
提取矩阵上三角部分,支持对角线偏移。
✅ 常见用法
- 基本上三角矩阵 →
np.triu(A)
- 指定偏移量 →
np.triu(A, k=1)
- 创建上三角矩阵 →
np.triu(np.ones((4, 4)))