Python 求解线性方程组的数组与矩阵numpy的区别

Python 求解线性方程组的数组与矩阵numpy的区别,python,arrays,numpy,matrix,linear-equation,Python,Arrays,Numpy,Matrix,Linear Equation,同样的理由已经提出了许多问题。 我还阅读了有关差异的官方文件()。但我仍在努力理解numpy数组和矩阵之间的哲学区别 更确切地说,我正在寻找下面提到的结果的原因 #using array >>> A = np.array([[ 1, -1, 2], [ 0, 1, -1], [ 0, 0, 1]]) >>> b = np.array([5,-1,3]) >>> x = np

同样的理由已经提出了许多问题。 我还阅读了有关差异的官方文件()。但我仍在努力理解numpy数组和矩阵之间的哲学区别

更确切地说,我正在寻找下面提到的结果的原因

   #using array
>>> A = np.array([[ 1, -1,  2],
              [ 0,  1, -1],
              [ 0,  0,  1]])
>>> b = np.array([5,-1,3])
>>> x = np.linalg.solve(A,b)
>>> x
array([ 1.,  2.,  3.])

`#using matrix
>>> A=np.mat(A)
>>> b=np.mat(b)
>>> A
matrix([[ 1, -1,  2],
        [ 0,  1, -1],
        [ 0,  0,  1]])
>>> b
matrix([[ 5, -1,  3]])
>>> x = np.linalg.solve(A,b)
>>> x
matrix([[  5.,  -1.,   3.],
        [ 10.,  -2.,   6.],
        [  5.,  -1.,   3.]])
为什么用数组表示的线性方程组得到正确解,而用矩阵表示得到另一个矩阵解

老实说,我也不明白为什么要在第二种情况下使用矩阵作为解决方案


抱歉,如果问题已经回答,我没有注意到,如果我对numpy数组和矩阵的理解有误,请原谅。

您有转置问题……当您转到矩阵栏时,列向量和行向量不再可互换:

import numpy as np

A = np.array([[ 1, -1,  2],
              [ 0,  1, -1],
              [ 0,  0,  1]])
b = np.array([5,-1,3])
x = np.linalg.solve(A, b)
print 'arrays:' 
print x

A = np.matrix(A)
b = np.matrix(b)
x = np.linalg.solve(A, b)
print 'matrix, wrong set up:'
print x

b = b.T
x = np.linalg.solve(A, b)
print 'matrix, right set up:'
print x
收益率:

arrays:
[ 1.  2.  3.]
matrix, wrong set up:
[[  5.  -1.   3.]
 [ 10.  -2.   6.]
 [  5.  -1.   3.]]
matrix, right set up:
[[ 1.]
 [ 2.]
 [ 3.]]

现在我意识到我错在哪里了。谢谢。“答案太完美了!”萨洛·卡斯特罗谢谢你通知我。我不知道我能接受答案。我是stackoverflow.com的新手。