python - 如何使用 np.triu_indices 获取一个数组的上三角值?
问题描述
大家,我的一个项目有一些问题,所以我有一个 .tsp 文件来读取并让一个 Dijkstra 算法解决,但是我的代码没有创建矩阵,有人可以帮助我。我的代码在这里。
class Matrix_Manipulation:
def __init__(self, size):
self.size = size
self.elements = size**2
def fill_matrix_upper(self, values):
iu1 = np.triu_indices(self.elements/2, 1)
matrix = np.zeros((self.size,self.size))
matrix[iu1] = values
return matrix
def read_dist(self, tsp, tspfile):
total = int(((tsp["DIMENSION"] + 1) ** 2) / 2)
for n in range(1, total):
line = tspfile.readline()
words = deque(line.split())
for i in words:
if (i == "EOF"):
break
else:
tsp["EDGE_WEIGHT_SECTION"].append(int(i))
return tsp
def return_list(self, tsp):
return list(tsp["EDGE_WEIGHT_SECTION"])
当我扫描 .tsp 文件时效果很好,但是当我尝试创建矩阵时不起作用。
而且我找不到错误,因为 IDE 没有为我显示错误。
编辑
if __name__ == "__main__":
path = open("si535.tsp", "r")
r = Reader()
tsp = r.read_tsp_file(path)
tsp = r.read_dist(tsp, path)
l = r.return_list(tsp)
mat = Matrix_Manipulation(int(tsp["DIMENSION"]) + 1)
matrix = mat.fill_matrix_upper(l)
print(matrix)
解决方案
推荐阅读
- iphone - 自动缩放后返回原始缩放比例
- spring-cloud-stream - 无法使用 Spring Cloud Stream 在消费者端设置多个绑定到同一目的地和组
- python - 有效地将python整数切割为32位整数
- python - 仅将带有 kwargs 的关键字参数分配给尚未分配的参数
- excel - 使用输入框删除范围内的值
- typescript - 资源创建破坏堆栈部署
- python - 测试是否在python中按下了一个键
- twig - 不修改树枝中的相对路径
- java - Spring Boot WebMvcConfigurer 调用了两次,第二次没有解析@Value
- java - 在 Java 中检查整个集合的类型