Source code for toqito.helper.expr_as_np_array
"""Converts a Cvxpy expression into a np.array."""
import numpy as np
from cvxpy.expressions.expression import Expression
[docs]
def expr_as_np_array(cvx_expr: Expression) -> np.ndarray:
"""Convert cvxpy expression into a numpy array.
Args:
cvx_expr: The cvxpy expression to be converted.
Returns:
The numpy array of the cvxpy expression.
"""
if cvx_expr.is_scalar():
return np.array(cvx_expr)
if len(cvx_expr.shape) == 1:
return np.array(list(cvx_expr))
# Then cvx_expr is a 2-D array.
rows = []
for i in range(cvx_expr.shape[0]):
row = [cvx_expr[i, j] for j in range(cvx_expr.shape[1])]
rows.append(row)
arr = np.array(rows)
return arr