Я пытаюсь решить следующую проблемуПреобразовать панду в numpy.ndarray для sparse.hstack
import numpy as np
import pandas as pd
from scipy import sparse
X1 = sparse.rand(10, 10000)
df = pd.DataFrame({ 'a': range(10)})
На самом деле, я получаю X1 от TfidfVectorizer но отпустить код для краткости
I хотите применить sparse.hstack для использования обеих переменных в регрессии. конвертировать панды в numpy.ndarray ниже
X2 = df['a'].as_matrix()
type(X2)
numpy.ndarray
X = sparse.hstack((X1,X2))
ValueError Traceback (most recent call last)
<ipython-input-38-9493e3833c5d> in <module>()
----> 1 X = sparse.hstack((X1,X2))
C:\Program Files\Anaconda3\lib\site-packages\scipy\sparse\construct.py in hstack(blocks, format, dtype)
462
463 """
--> 464 return bmat([blocks], format=format, dtype=dtype)
465
466
C:\Program Files\Anaconda3\lib\site-packages\scipy\sparse\construct.py in bmat(blocks, format, dtype)
579 elif brow_lengths[i] != A.shape[0]:
580 raise ValueError('blocks[%d,:] has incompatible '
--> 581 'row dimensions' % i)
582
583 if bcol_lengths[j] == 0:
ValueError: blocks[0,:] has incompatible row dimensions
Что случилось?
из дока: 'Параметры: \t стро: последовательность ndarrays Все массивы должны иметь одинаковую форму вдоль всех, но второго axis.' так ваш массив не имеет ту же форму. вы можете проверить с помощью 'X1.shape()' и 'X2.shape()' –
X1.shape (10, 10000) X2.shape (10,) – Edward
Я думаю, для этого вам понадобится как минимум 1 строка. –