2017-02-14 4 views
0

J'ai un problème d'optimisation défini dans cvxpy, mais je veux travailler avec le résultat dans mon code en numpy après - comment puis-je le convertir de cvxpy en numpy?Comment convertir un résultat CVXPY en numpy

Il est de type

<class 'numpy.matrixlib.defmatrix.matrix'> 

Si je veux tracer pour voir le résultat, matplotlib montre seulement une zone bleue.

Répondre

0

https://docs.scipy.org/doc/numpy/reference/generated/numpy.matrix.view.html semble avoir tout ce que vous avez besoin

view de numpy peut être utilisé (afaik) de toute façon dont vous pouvez utiliser array de numpy directement.

Il est logique de « convertir » à un tableau numpy si vous souhaitez obtenir une copie des données:

y 
matrix([[1, 0, 0, 0, 2, 0, 0, 0], 
     [3, 0, 0, 0, 4, 0, 0, 0]], dtype=int16) 

type(y) 
numpy.matrixlib.defmatrix.matrix  


n = numpy.array(y) 
n[1,2] = 999 

n 
array([[ 1, 0, 0, 0, 2, 0, 0, 0], 
     [ 3, 0, 999, 0, 4, 0, 0, 0]], dtype=int16) 

y 
matrix([[1, 0, 0, 0, 2, 0, 0, 0], 
     [3, 0, 0, 0, 4, 0, 0, 0]], dtype=int16)