gpt4 book ai didi

python - 在 python 中将下三角矩阵的索引作为一维列表的快速方法

转载 作者:太空宇宙 更新时间:2023-11-03 13:48:37 28 4
gpt4 key购买 nike

给定方阵的行数(或列数)n,我试图在一维列表中获取下三角矩阵的索引对。到目前为止,我想到了以下解决方案:

def getLowerTriangularIndices(n):
inds=[];
for i in range(1,n):
for j in range(i):
inds.append((i,j))
return inds;

考虑到这两个 for 循环,最好使用 numpy 来更有效地计算它。有人有什么建议吗?

最佳答案

Numpy 有一个方法...

import numpy as np

# create your matrix. If it's not yet a numpy array, make it one
ar = np.array(matrix)
indices = np.tril_indices_from(ar)

这将返回两个数组的元组。如果你想把它们作为列表,你可以这样做

indices = [list(x) for x in np.tril_indices_from(ar)]

实际上你不需要数组来获取索引,还有 np.tril_indices,它将形状作为参数。

所以你的函数应该是:

def getLowerTriangularIndices(n):
return [list(x) for x in np.tril_indices(n)]

或者如果你想要一个元组列表:

def getLowerTriangularIndices(n):
return zip(*np.tril_indices(n)]

关于python - 在 python 中将下三角矩阵的索引作为一维列表的快速方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14274499/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com