python - How to convert a scipy row matrix into a numpy array -


consider following example:

import numpy np import scipy.sparse  = scipy.sparse.csr_matrix((2,2)) b = a.sum(axis=0) 

the matrix b has form

matrix([[ 0.,  0.]]) 

however, i'd become array this:

array([ 0.,  0.]) 

this can done b = np.asarray(b)[0], not seem elegant, compared matlab's b(:). there more elegant way this?

b.a1 job.

in [83]: out[83]:  <2x2 sparse matrix of type '<class 'numpy.float64'>'     0 stored elements in compressed sparse row format>  in [84]: a.a out[84]:  array([[ 0.,  0.],        [ 0.,  0.]])  in [85]: b=a.sum(axis=0)  in [86]: b out[86]: matrix([[ 0.,  0.]])  in [87]: b.a1 out[87]: array([ 0.,  0.])  in [88]: a.a.sum(axis=0)     # way out[88]: array([ 0.,  0.]) 

you can vote this, or add top grossing answer here: numpy matrix array :)

a sparse matrix. sparse sum performed matrix product (an appropriate matrix of 1s). result dense matrix.

sparse matrix has toarray() method, .a shortcut.

dense matrix has those, has .a1 (poorly documented - hence hits), flattens well.

the doc a1:

return `self` flattened `ndarray`. equivalent ``np.asarray(x).ravel()`` 

in fact code is

return self.__array__().ravel() 

====================

is matlab b(:) equivalent?

a(:) elements of a, regarded single column.

if read correctly, numpy equivalent transpose, or b.ravel().t. shape (2,1). in matlab column matrix simplest form of matrix.

in [94]: b.t out[94]:  matrix([[ 0.],         [ 0.]]) 

(i'm old matlab programmer, octave on standby computer. , copy of 3.5 on old windows disk. :) ).


Comments

Popular posts from this blog

javascript - Slick Slider width recalculation -

jsf - PrimeFaces Datatable - What is f:facet actually doing? -

angular2 services - Angular 2 RC 4 Http post not firing -