首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用np.triu_indices生成索引

使用np.triu_indices生成索引
EN

Stack Overflow用户
提问于 2013-06-29 00:01:14
回答 1查看 1.6K关注 0票数 2

我想在上三角矩阵的每个条目上调用一个函数。为了避免混乱的for循环嵌套,我使用了numpy.triu_indices函数。我的函数可以工作,但我想知道是否有一种更干净的方法来实现索引。

代码语言:javascript
复制
import numpy as np
def weighted_edges(adjmat):
    indices = np.triu_indices(len(adjmat))
    return ((x, y, adjmat[x,y]) for (x,y) in zip(indices[0], indices[1]))

我怀疑有一种方法可以实现这一点,而不需要在zip call中引用indicesi。是否真的有办法这样做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-29 00:12:06

如果您有一个需要上三角值的N x N矩阵,只需执行以下操作

代码语言:javascript
复制
import numpy as np
N = 5
x = np.arange(N**2).reshape(N, N)
upper = x[np.triu_indices(N, 0)]

如果您希望三角值从主对角线偏移k列,则执行此操作

代码语言:javascript
复制
upper = x[np.triu_indices(N, k)]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17368947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档