4

いくつかのテキスト データを操作する際に、np 配列 (パンダ シリーズから) を csr マトリックスに結合しようとしています。

私は以下をやった。

#create a compatible sparse matrix from my np.array.
#sparse.csr_matrix(X['link'].values) returns array size (1,7395)
#transpose that array for (7395,1)

X = sparse.csr_matrix(X['link'].values.transpose)


#bodies is a sparse.csr_matrix with shape (7395, 20000)

bodies = sparse.hstack((bodies,X))  

ただし、この行ではエラーが発生しますno supported conversion for types: (dtype('O'),)。これが何を意味するのかわかりませんか?どうすれば回避できますか?

ありがとう。

4

2 に答える 2

3

回答としてキャストされたサウロ・カストロのコメントは次のとおりです。

x = np.arange(12).reshape(1,12)  # ndarray
sparse.csr_matrix(x)
Out[14]: <1x12 sparse matrix of type '<type 'numpy.int32'>'
with 11 stored elements in Compressed Sparse Row format>

x.transpose   # function, not ndarray
Out[15]: <function transpose>  

X = sparse.csr_matrix(x.transpose)
TypeError: no supported conversion for types: (dtype('O'),)

を使用する前にエラーが発生しhstack、ndarray ではなく関数から疎行列を作成しようとしました。エラーは を省略していました()

# x.transpose() == x.T   # ndarray

sparse.csr_matrix(x.transpose())
Out[17]: <12x1 sparse matrix of type '<type 'numpy.int32'>'
with 11 stored elements in Compressed Sparse Row format>

sparse.csr_matrix(x.T)
Out[18]: <12x1 sparse matrix of type '<type 'numpy.int32'>'
with 11 stored elements in Compressed Sparse Row format>


bodies = sparse.rand(12,3,format='csr',density=.1)
sparse.hstack((bodies,X))
Out[32]: <12x4 sparse matrix of type '<type 'numpy.float64'>'
with 14 stored elements in COOrdinate format>

csr_matrix転置された配列が与えられた場合、正常に動作します。

于 2013-09-16T06:31:45.700 に答える