Error trying to solve a matrix using numpy

Im trying to solve for x1 x2 x3 and x4 for this matrix but I keep getting errors. Matrix A contains all the coefficients for x1 x2 x3 x4 respectively and Matrix B contains what it is equal to.

I wrote the following code which in theory should work but it keeps saying I provided 5 arguments or something like that

import numpy as np

a = np.matrix([2, 5, 6, 4], [5, 10, 9, 5], [7, 17.5, 21, 14], [0, 0, 2, 5])
b = np.matrix([23.5, 34, 82.25, -13])

x = np.linalg.solve(a,b)
print(x)

I shouldn't have to do this, since you should show the full traceback with the error:

In [396]: a = np.matrix([2, 5, 6, 4], [5, 10, 9, 5], [7, 17.5, 21, 14], [0, 0,
     ...: 2, 5])
     ...: b = np.matrix([23.5, 34, 82.25, -13])
     ...: 
     ...: x = np.linalg.solve(a,b)
Traceback (most recent call last):
  File "<ipython-input-396-710e1fc00100>", line 1, in <module>
    a = np.matrix([2, 5, 6, 4], [5, 10, 9, 5], [7, 17.5, 21, 14], [0, 0, 2, 5])
TypeError: __new__() takes from 2 to 4 positional arguments but 5 were given

Look at that error message! See the np.matrix? Now go to np.matrix docs, and you'll see that the you need to provide ONE list of lists. And extra lists are interpreted as added arguments.

Thus you should use: (note the added [] - they are important.

In [397]: a = np.matrix([[2, 5, 6, 4], [5, 10, 9, 5], [7, 17.5, 21, 14], [0, 0,
     ...:  2, 5]])
     ...: b = np.matrix([23.5, 34, 82.25, -13])
     ...: 
     ...: x = np.linalg.solve(a,b)
Traceback (most recent call last):
  File "<ipython-input-397-b90e1785a311>", line 4, in <module>
    x = np.linalg.solve(a,b)
  File "<__array_function__ internals>", line 180, in solve
  File "/usr/local/lib/python3.8/dist-packages/numpy/linalg/linalg.py", line 393, in solve
    r = gufunc(a, b, signature=signature, extobj=extobj)
ValueError: solve: Input operand 1 has a mismatch in its core dimension 0, with gufunc signature (m,m),(m,n)->(m,n) (size 1 is different from 4)

In [398]: a.shape
Out[398]: (4, 4)
In [399]: b.shape
Out[399]: (1, 4)

Note the shape of b. solve doesn't like that mix of shapes. A (4,1) would probably work. But since we looked at np.matrix docs, lets follow its recommendations, and switch to np.array:

In [400]: a = np.array([[2, 5, 6, 4], [5, 10, 9, 5], [7, 17.5, 21, 14], [0, 0,
     ...: 2, 5]])
     ...: b = np.array([23.5, 34, 82.25, -13])
     ...: 
     ...: x = np.linalg.solve(a,b)
Traceback (most recent call last):
  File "<ipython-input-400-b1b6c06db25c>", line 4, in <module>
    x = np.linalg.solve(a,b)
  File "<__array_function__ internals>", line 180, in solve
  File "/usr/local/lib/python3.8/dist-packages/numpy/linalg/linalg.py", line 393, in solve
    r = gufunc(a, b, signature=signature, extobj=extobj)
  File "/usr/local/lib/python3.8/dist-packages/numpy/linalg/linalg.py", line 88, in _raise_linalgerror_singular
    raise LinAlgError("Singular matrix")
LinAlgError: Singular matrix

In [401]: a
Out[401]: 
array([[ 2. ,  5. ,  6. ,  4. ],
       [ 5. , 10. ,  9. ,  5. ],
       [ 7. , 17.5, 21. , 14. ],
       [ 0. ,  0. ,  2. ,  5. ]])
In [402]: np.linalg.det(a)
Out[402]: 0.0

I assume you know enough linear algebra to understand that problem, and undertake your own fix.