разреженная матрица из словарей - PullRequest
1 голос
/ 10 июня 2011

Я только начал учиться программировать на Python и пытаюсь построить разреженную матрицу, используя пакет Scipy.Я обнаружил, что существуют разные типы разреженных матриц, но все они требуют хранения с использованием трех векторов, таких как row, col, data;или если вы хотите каждую новую запись отдельно, например, S (i, j) = s_ij, вам нужно инициировать матрицу с заданным размером.
Мой вопрос заключается в том, есть ли способ сохранить матрицу для входа без необходимости начальнойразмер, как словарь.

Ответы [ 3 ]

2 голосов
/ 11 июня 2011

Нет. Любая матрица в Scipy, разреженная или нет, должна быть создана с размером.

2 голосов
/ 10 июня 2011

Вы можете использовать обычный словарь с кортежами из двух целых чисел в качестве индексов. Например:

matrix = {}
matrix[5, 7] = 1
matrix[3, 8] = 5
0 голосов
/ 29 ноября 2016
dic={}
a,b=int(input("Enter the order:")),int(input())
for i in range(a):
    for j in range(b):
        c=int(input())
        if c!=0:
            dic[(i,j)]=c
if len(dic)<=(a+b)/2:
    print("sparse metrix")
else:
    print("non sparse metrix")

for i in range(a):
    for j in range(b):
        print(dic.get((i,j),0),end=" ")
    print()    
...