numpy中行向量与列向量

Numpy中的数组shape为(m,)说明它是一个一维数组,或者说是一个向量,不区分列向量还是行向量,在与矩阵进行矩阵乘法时,numpy会自动判断此时的一维数组应该取行向量还是列向量。

X = np.random.randn(4,3) # X.shape:(4, 3)
t = np.array([2,3,4]) # t.shape:(3,),此时不区分行向量还是列向量
y = X.dot(t) # 计算矩阵与向量乘法时,会把t当做列向量来计算,此时结果仍然是一维数组(但我们知道,这个结果应该是列向量)

在numpy中,用二维矩阵而不是一维矩阵来表示行向量和列向量:
    行向量的形状:(n, 1)
    列向量的形状:(1, n)

X = np.random.randn(4,3) # X.shape:(4, 3)
t = np.array([2,3,4]).reshape(3,1) # t.shape:(3,1),表示是列向量
y = X.dot(t) # y.shape:(4,1),表示结果也是列向量

 计算线性方程组:

y = 4 + 2*x1 + 3*x2 + x3

X = np.random.randn(4,3)
X_b = np.c_[np.ones((4,1)), X] #构造矩阵,增加x0=1
t = np.array([4,2,3,1]).reshape(4,1)
y = X_b.dot(t)

 

posted @ 2021-08-03 10:03  cheng4632  阅读(1885)  评论(0编辑  收藏  举报