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)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM