how to make matrix into diagonal matrix in numpy?

前端 未结 2 675
醉酒成梦
醉酒成梦 2021-01-22 01:23

given matrix:

x = matrix([[ 0.9,  0.14], [ 0.15,  0.8]])

how can you make the first column, x[:,0], into a diagonal matrix in nump

2条回答
  •  孤独总比滥情好
    2021-01-22 01:34

    numpy.diag( x.A[ :, 0 ] )
    

    should do it.

    The difference between a matrix and an array is crucial here. You won't get the same result from just numpy.diag( x[ :, 0 ] ). x.A is a shorthand for numpy.asarray( x ) when x is a matrix.

    So by the same token, to answer your question precisely I guess I shouldn't forget convert the answer from an array back to a matrix:

    numpy.matrix( numpy.diag( x.A[ :, 0 ] ) )
    

提交回复
热议问题