scipy разреженные матрицы как вход для petsc4py

Я не могу найти способ эффективно загружать scipy разреженные матрицы, например csr_matrix , в матрицу petsc4py, например PETSc.Mat().createAIJ . Я нашел эту ветку , но я не могу ее применить.

Я также был бы признателен за указатель, где этот материал фактически документирован. Примеры в demo каталоге объясняют только часть, и я не вижу никаких докстерий.

  • Как узнать технологию интеграции, используемую quadpack
  • Поверхностная кривизна Matlab эквивалент в Python
  • Создание массива в numpy / scipy путем итерации в Python?
  • экспорт из / импорта в numpy, scipy в форматах SQLite и HDF5
  • Что означают разные значения аргумента вида в scipy.interpolate.interp1d?
  • Как установить SciPy на 64-битную Windows?
  • Отчёт о двух выборочной статистике KS из двух предварительно вычисленных гистограмм
  • Эффективный способ нормализации Scipy Sparse Matrix
  • One Solution collect form web for “scipy разреженные матрицы как вход для petsc4py”

    В вашей ссылке говорится, что для создания разреженной матрицы в PETSc вы должны использовать следующую команду:

     PETSc.Mat().createAIJ(size=(nrows,ncols), csr=(ai,aj,aa)) 

    В соответствии с этим , ai , aj и aa , в PETSc говорят:

     > i - row indices > j - column indices > a - matrix values 

    Они эквивалентны соответственно .indptr , .indices и .data scypy.sparse.csr_matrix см. В документах .

    Итак, если ваша ссылка правильная, следует работать:

     >>> from petsc4py import PETSc >>> import scipy.sparse >>> csr_mat = scipy.sparse.rand(1000, 1000, density=0.001, format='csr') >>> petsc_mat = PETSc.Mat().createAIJ(size=csr_mat.shape, ... csr=(csr_mat.indptr, csr_mat.indices, ... csr_mat.data)) 

    К сожалению, я не могу проверить это сам.

    Python - лучший язык программирования в мире.