Диапазоны адресации в разреженной матрице Сципи - PullRequest
4 голосов
/ 03 февраля 2011

У меня есть большая матрица, в настоящее время в numpy, которую я хотел бы перенести на скудную разреженную матрицу, потому что сохранение текстовых представлений матрицы numpy (2000,2000) превышает 100 МБ.

(1) Кажется, что в scipy имеется избыток разреженных матриц [например, lil_matrix или dok_matrix - который будет оптимальным для простого приращения и эффективным для сохранения в базу данных?

(2) Я хотел бы иметь возможность адресовать диапазоны в матрице следующим образом:

>> import numpy as np    
>> a = np.zeros((1000,1000))
>> a[3:5,4:7] += 1

Кажется, что это невозможно для разреженных матриц?

1 Ответ

6 голосов
/ 03 февраля 2011

Я не могу сказать, какой из них наиболее эффективен для хранения. Это будет зависеть от ваших данных.

Я могу сказать, однако, что оператор += работает, просто вы не можете полагаться на обычные правила вещания массива:

>>> m = sparse.lil_matrix((100,100))
>>> m[50:56,50:56]+=scipy.ones((6,6))
>>> m[50,50]  #1.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...