У меня есть следующие матрицы:Как column_stack массив numpy с scipy разреженной матрицей?
A.toarray()
array([[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
...,
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0],
[0, 0, 0, ..., 0, 0, 0]], dtype=int64)
type(A)
scipy.sparse.csr.csr_matrix
A.shape
(878049, 942)
И матрица B:
B
array([2248, 2248, 2248, ..., 0, 0, 0])
type(B)
numpy.ndarray
B.shape
(878049,)
Я хотел бы столбец стека A
и B
в C, я попробовал на следующие:
C = sparse.column_stack([A,B])
Затем:
/usr/local/lib/python3.5/site-packages/numpy/lib/shape_base.py in column_stack(tup)
315 arr = array(arr, copy=False, subok=True, ndmin=2).T
316 arrays.append(arr)
--> 317 return _nx.concatenate(arrays, 1)
318
319 def dstack(tup):
ValueError: all the input array dimensions except for the concatenation axis must match exactly
Моя проблема в том, как сохранить размеры. Таким образом, любая идея о том, как столбцы стекают их ?.
Update
Я попробовал следующее:
#Sorry for the name
C = np.vstack((A.A.T, B)).T
и я получил:
array([[ 0, 0, 0, ..., 0, 6],
[ 0, 0, 0, ..., 0, 6],
[ 0, 0, 0, ..., 0, 6],
...,
[ 0, 0, 0, ..., 0, 1],
[ 0, 0, 0, ..., 0, 1],
[ 0, 0, 0, ..., 0, 1]], dtype=int64)
Это правильный путь к колонке складывают их ?.
Где вы нашли 'sparse.column_stack'? Там 'np.column_stack', но не разреженная версия. – hpaulj
Все нижеприведенные ответы идут нескромно. Проверьте этот ответ http://stackoverflow.com/a/33259578/2988730. Это похоже на то, что вы искали. Я голосую, чтобы закрыть, как обманывать. –
Возможный дубликат [Есть эффективный способ конкатенации матриц scipy.sparse?] (Http://stackoverflow.com/questions/6844998/is-there-an-efficient-way-of-concatenating-scipy-sparse-matrices) –