One of the essential characteristics of a matrix is that it be rectangular.

This is neither spelt out or checked currently.

The Doc description refers to a class:
  • Returns a matrix from an array-like object, or from a string of data. A matrix is a                specialized 2-D array that retains its 2-D nature through operations. It has certain special operators, such as * (matrix multiplication) and ** (matrix power).
  • This illustrates a failure, which is reported later in the calculation:

    A2= np.matrix([[1, 2, -2], [-3, -1, 4], [4, 2 -6]])

    Here 2 - 6 is treated as an expression. 

    Wikipedia offers:

    In mathematics, a matrix (plural matrices) is a rectangular array[1] of numbers, symbols, or expressions, arranged in rows and columns.[2][3] The individual items in a matrix are called its elements or entries. An example of a matrix with 2 rows and 3 columns is

    \begin{bmatrix}1 & 9 & -13 \\20 & 5 & -6 \end{bmatrix}.
    In the Numpy context, the symbols or expressions need to be evaluable.

    Colin W.