Создание разреженной матрицы с помощью SciPy в Python - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать разреженную матрицу, читая документацию.

Итак, согласно документации (https://docs.scipy.org/doc/scipy/reference/generated/scipy.sparse.csr_matrix.html):

enter image description here

Когда я пытаюсь:

csr_matrix((data = np.array([1, 1, 1, 1, 1, 1]), indices = np.array(2, 3, 4, 5, 7, 7), indptr = np.array([0, 1, 2, 3, 2, 1])))

, я получаю исключение:

Файл "", строка 1 csr_matrix ((data = np.array ([1, 1,1, 1, 1, 1]), индексы = np.array (2, 3, 4, 5, 7, 7), indptr = np.array ([0, 1, 2, 3, 2, 1]))) ^ SyntaxError: неверный синтаксис

При попытке:

csr_matrix((np.array([1, 1, 1, 1, 1, 1]), np.array(2, 3, 4, 5, 7, 7), np.array([0, 1, 2, 3, 2, 1])))

снова выдается сообщение об ошибке:

ValueError: только 2 без ключевого словааргументы приняты
0, 1, 2, 3, 2, 1

(т. Е. (0, 2), (1, 3), (2, 4) и т. Д.).

1 Ответ

0 голосов
/ 18 апреля 2019

У вас должно быть все установлено с

from scipy.sparse import csr_matrix
import numpy as np

my_csr = csr_matrix((np.array([1,1,1,1,1,1]), (np.array([0, 1, 2, 3, 2, 1]), np.array([2, 3, 4, 5, 7, 7]))), shape = (8,8))

Обратите внимание, что вам нужно указать форму матрицы (здесь я устанавливаю матрицу в виде квадратной матрицы 8x8 через параметр shape).Обратите внимание также на порядок массивов и использование круглых скобок!

Вы можете убедиться в том, что это удовлетворительно, преобразовав в плотный формат:

my_csr.toarray()
...