Построение разреженной матрицы CSR напрямую по сравнению с использованием COO tocsr () - Scipy

UID shell зарезервирован для разработки и тестирования. Запуск приложения с привилегиями shell - обход модели безопасности Google. Таким образом, вы не сможете сделать это на защищенном коммерческом устройстве без rooting .

Возможным временным (непостоянным между перезагрузками) обходным путем было бы следующее:

  1. Используйте adb shell, чтобы запустить фоновый сервисный процесс, запущенный как UID оболочки
  2. . В вашем приложении с помощью IPC попросить службу выполнить специальную задачу для вас
0
задан ajl123 16 January 2019 в 22:09
поделиться

1 ответ

Похоже, ваш вывод содержит только первые W-1 строк тестовых данных. Я не уверен, является ли это намеренным или нет. Мои решения предполагают, что вы хотите использовать все testdata.

Когда вы строите матрицу COO, вы также строите индексы и данные аналогичным образом?

Одна вещь, которая может ускорить построение csr_matrix, - это использовать встроенные функции numpy для генерации данных. для csr_matrix, а не для петонов и массивов. Я ожидаю, что это значительно улучшит скорость генерации индексов. Вы можете настроить тип d на тип int в зависимости от размера вашей матрицы.

N = 4
W = 8
testdata = np.random.randn(N,W)

ptrs = N*np.arange(W*N+1,dtype='int')
indices =  np.tile(np.arange(N*N,dtype='int'),W)
data = np.tile(testdata,N).flatten()

Hshape = ((N*W, N**2))
H = csr_matrix((data, indices, ptrs), shape=Hshape)

Другая возможность состоит в том, чтобы сначала создать большой массив, а затем определить каждый из N вертикальных блоков столбцов сразу. Это означает, что вам не нужно делать тонну копий исходных данных, прежде чем поместить их в разреженную матрицу. Однако преобразование типа матрицы может быть медленным.

N = 4
W = 8
testdata = np.random.randn(N,W)

Hshape = ((N*W, N**2))
H = sp.sparse.lol_matrix(Hshape)

for j in range(N): 
    H[N*np.arange(W)+j,N*j:N*(j+1)] = testdata.T

H = H.tocsc()
0
ответ дан tch 16 January 2019 в 22:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: