假设一个NxN
方阵。我想选择一个宽度为w
的频带,它被k
偏移到主对角线,如下面的N = 9, w = 4, k = -1
示例所示
元素的顺序应该和^{np.tril_indices(N, k=k)
减少np.tril_indices(N, k=k-w)
:
i1 = list(zip(*np.tril_indices(N, k=k)))
i2 = list(zip(*np.tril_indices(N, k=k-w)))
indices = tuple(zip(*[i for i in i1 if i not in i2]))
M[indices]
或者也可以使用^{
B = np.ravel(np.tril(M, k=k) - np.tril(M, k=k-w))
B[B.nonzero()]
我想知道是否有更有效和/或更简洁的方法来实现这一点
组合2
tri
掩码:np.tri
本质上是:np.tril
仅将where
应用于此相关问题 更多 >
编程相关推荐