скудная большая разреженная матрица - PullRequest
3 голосов
/ 12 марта 2012

Я пытаюсь использовать большие 10 ^ 5x10 ^ 5 разреженных матриц, но, кажется, работает против scipy:

n = 10 ** 5
x = scipy.sparse.rand(n, n, .001)

получает

ValueError: Trying to generate a random sparse matrix such as the
    product of dimensions is greater than 2147483647 - this is not
    supported on this machine

Кто-нибудь знает, почему лимитесть и могу ли я этого избежать?(Кстати, я использую MacBook Air с 4 ГБ памяти и распределением энтузиастов)

1 Ответ

10 голосов
/ 12 марта 2012

Это ограничение, которое вытекает из способа реализации scipy.sparse.rand(). Вы можете свернуть свою собственную генерацию случайной матрицы, чтобы обойти это ограничение:

n = 10 ** 5
density = 1e-3
ij = numpy.random.randint(n, size=(2, n * n * density))
data = numpy.random.rand(n * n * density)
matrix = scipy.sparse.coo.coo_matrix((data, ij), (n, n))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...