numpy中的矩阵与数学上的矩阵的关系

举报
tsinghuazhuoqing 发表于 2021/12/26 01:18:12 2021/12/26
【摘要】   ➤00 矢量、矩阵 在数学上,矢量和矩阵之间具有很强的联系。矢量可以看成行数、或者列数为1的矩阵。所以它可以被分成行矢量,或者列矢量。 下面分别表示了一个行矢量和一个列矢量。 ...

 

00 矢量、矩阵


在数学上,矢量和矩阵之间具有很强的联系。矢量可以看成行数、或者列数为1的矩阵。所以它可以被分成行矢量,或者列矢量。

下面分别表示了一个行矢量和一个列矢量。

x ˉ = [ x 1 , x 2 , x 3 , ⋯ , x n ] \bar x = \left[ {x_1 ,x_2 ,x_3 , \cdots {\rm{,}}x_n } \right] xˉ=[x1,x2,x3,,xn]

x ˉ = [ x 1 x 2 ⋮ x n ] \bar x =

x1x2xn [ x 1 x 2 x n ]
xˉ=x1x2xn

通常情况下,如果不加以特别的说明,矢量都当做列矢量,通过转置来转换行向量与列向量。

numpy是python中进行数学运算的库,包括有对于矩阵运算的各种操作。下面对于在numpy中表示矢量、矩阵中与数学上的对应关系进行梳理。

 

01 Numpy中的矩阵


1.矩阵初始化

(1) 初始化

获得一个两行三列的矩阵: R 2 × 3 R_{2 \times 3} R2×3

Z = array([[1,2,3],[2,3,4]])
printf(Z)
printf(Z.shape)

  
 
  • 1
  • 2
  • 3

输出结果:

[[1 2 3]
[2 3 4]]

3

通过numpy.array()函数可以将一个二维的list转换成numpy中的矩阵。

获得一个随机的 R 2 × 3 R_{2 \times 3} R2×3

X = random.randn(2, 3)
printf(X)
printf(X.shape)

  
 
  • 1
  • 2
  • 3

输出:

[[ 2.21298231 0.28727186 0.2434369 ]
[-0.90934184 -0.10003816 2.27751277]]

(2) 访问行或者列

对于numpy中的二维矩阵中,访问行向量使用第一个索引即可。如果访问列向量,则需要转置之后在访问。

2.矩阵转置

printf(Z.T)

  
 
  • 1

输出结果:

[[1 2]
[2 3]
[3 4]]

3.矩阵的点积

printf(dot(Z.T, Z))
printf(dot(Z, Z.T))

  
 
  • 1
  • 2

输出结果

[[ 5 8 11]
[ 8 13 18]
[11 18 25]]

[[14 20]
[20 29]]

 

02 Numpy中矩阵与向量


对于numpy中的函数来讲,它的矩阵、向量应该是一个二维矩阵。

1.行向量

Z = array([[1,2,3]])

显示:[[1 2 3]], shape:(1,3)

Z T ⋅ Z = [ 1 2 3 2 4 6 3 6 9 ] Z^T \cdot Z =

123246369 [ 1 2 3 2 4 6 3 6 9 ]
ZTZ=123246369
Z ⋅ Z T = 14 Z \cdot Z^T = 14 ZZT=14

2.列向量

Z = array([1,2,3]).reshape(-1, 1)
printf(Z)
printf(Z.shape)

  
 
  • 1
  • 2
  • 3

Z T ⋅ Z ,    Z ⋅ Z T Z^T \cdot Z,\,\,Z \cdot Z^T ZTZ,ZZT分别为:

[[14]]

[[1 2 3]
[2 4 6]
[3 6 9]]

 

03 Numpy一维数组


如果只使用numpy中的array定义一个一维数组,那么这个矩阵在后面的操作中就不再区分行向量,还是列向量了。

Z = array([1,2,3])
printf(Z)
printf(Z.shape)

  
 
  • 1
  • 2
  • 3

[1 2 3]
(3,)

对于两个等长的一维numpy的数组,无论如下进行什么操作,所得到的都是矢量之间的内积。

printf(dot(Z.T, Z))
printf(dot(Z, Z.T))

  
 
  • 1
  • 2

结果:

14
14

文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。

原文链接:zhuoqing.blog.csdn.net/article/details/109738434

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。