TypeError: Объектные массивы в настоящее время не поддерживаются в умножении матрицы scipy.sparse - PullRequest
0 голосов
/ 05 июня 2019

При выполнении следующего кода я получаю эту ошибку model = scipy.sparse.linalg.spsolve(Mt @ M, Mt @ dx) TypeError: Object arrays are not currently supported.Я предполагаю, что проблема заключается в умножении матриц, хотя M, Mt и dx - это не объекты, а <'scipy.sparse.csr.csr_matrix'>.Странно то, что этот код отлично работает на моем компьютере с Python версии 3.6.8, но, поскольку он слишком медленный, я перенес выполнение на внешние высокопроизводительные компьютеры, где я просто скопировал пакеты Python и выполнил его с той же версией.

Изучив самые популярные сообщения об этой ошибке, я понял, что ни одна из них не решает мою проблему.

# len(template) and fixvertex are some large, positive integers
M = scipy.sparse.lil_matrix((len(template)+fixvertex, len(template)))
dx = scipy.sparse.lil_matrix((len(template)+fixvertex, 3))

    ...

M = np.real(M)
dx = np.real(dx)
Mt = M.T

model = scipy.sparse.linalg.spsolve(Mt @ M, Mt @ dx)
...