sp.triu

功能:取出稀疏矩阵的上三角部分的非零元素

import numpy as np
import scipy.sparse as sp
X = np.array([[1,0,4],[0,1,0],[1,0,0]])
print(X)
sX = sp.csr_matrix(X)
print(sX)
print('-----------------')
print (sp.triu(sX))

输出为

[[1 0 4]
 [0 1 0]
 [1 0 0]]
  (0, 0)    1
  (0, 2)    4
  (1, 1)    1
  (2, 0)    1
-----------------
  (0, 0)    1
  (0, 2)    4
  (1, 1)    1

因为(2,0)不是上三角中元素,所以不会输出

`np.triu_indices` 是 NumPy 库中的一个函数,用于获取数组上三角部分元素的索引。 ### 功能 `np.triu_indices` 的主要功能是返回一个元组,该元组包含两个数组,分别对应输入数组上三角部分元素的行索引和列索引。这些索引可以用于切片一个形状为 `(n, n)` 的 `ndarray` 数组,从而提取出数组的上三角部分 [^3]。 ### 语法 ```python triu_indices(n, k=0, m=None) ``` 参数说明: - `n`:表示数组的行数或列数,通常用于方阵。 - `k`:可选参数,默认值为 0。它控制上三角部分的起始位置。`k = 0` 表示包含主对角线;`k > 0` 表示从主对角线之上 `k` 个位置开始;`k < 0` 表示从主对角线之下 `k` 个位置开始。 - `m`:可选参数,默认值为 `None`。如果提供了 `m`,则表示数组的列数,此时数组可以是非方阵。 ### 示例 ```python import numpy as np # 创建一个 3x3 的数组 arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # 获取上三角部分元素的索引,k=1 表示从主对角线之上 1 个位置开始 arr_ind = np.triu_indices(3, k=1) print(arr_ind) # 输出:(array([0, 0, 1], dtype=int64), array([1, 2, 2], dtype=int64)) # 使用索引提取上三角部分的元素 print(arr[arr_ind]) # 输出:[2 3 6] # 获取包含主对角线的上三角部分元素的索引,k=0 表示包含主对角线 arr_ind = np.triu_indices(3, k=0) print(arr_ind) # 输出:(array([0, 0, 0, 1, 1, 2], dtype=int64), array([0, 1, 2, 1, 2, 2], dtype=int64)) # 使用索引提取包含主对角线的上三角部分的元素 print(arr[arr_ind]) # 输出:[1 2 3 5 6 9] ``` ### 补充说明 在使用 `np.triu_indices` 时,要注意 `k` 参数的取值对结果的影响。不同的 `k` 值会改变上三角部分的起始位置,从而影响提取的元素 [^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值