00 矢量、矩阵


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

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

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

xˉ=[x1x2⋮xn]\bar x = \begin{bmatrix} \begin{matrix} {x_1 }\\{x_2 }\\\vdots\\{x_n }\\\end{matrix} \end{bmatrix}xˉ=⎣⎢⎢⎢⎡​x1​x2​⋮xn​​​⎦⎥⎥⎥⎤​

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

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

01 Numpy中的矩阵


1.矩阵初始化

(1) 初始化

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

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

输出结果:

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

3

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

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

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

输出:

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

(2) 访问行或者列

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

2.矩阵转置

printf(Z.T)

输出结果:

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

3.矩阵的点积

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

输出结果

[[ 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)

ZT⋅Z=[123246369]Z^T \cdot Z = \begin{bmatrix} \begin{matrix} 1 & 2 & 3\\2 & 4 & 6\\3 & 6 & 9\\\end{matrix} \end{bmatrix}ZT⋅Z=⎣⎡​123​246​369​​⎦⎤​
Z⋅ZT=14Z \cdot Z^T = 14Z⋅ZT=14

2.列向量

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

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

[[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]
(3,)

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

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

结果:

14
14

numpy中的矩阵与数学上的矩阵的关系相关推荐

  1. python定义一个空数组_在NumPy中如何创建一个空的数组/矩阵?

    如何以我通常使用列表(List)的方式使用Numpy数组或矩阵? 我想创建一个空的数组(或矩阵),然后每次添加一列(或行)到这个数组(或矩阵). 目前能想到的方法是: mat = None for c ...

  2. 数学上各种空间概念的关系图

    https://blog.csdn.net/cc1949/article/details/79744519 数学上有各种空间,概念容易混淆,为了记忆,整理出一张关系图. 目前不清楚无限维的内积空间是什 ...

  3. 对NumPy中dot()函数的理解(亲测,矩阵算法)

    今天学习到numpy基本的运算方法,遇到了一个让我比较难理解的问题.就是dot函数是如何对矩阵进行运算的. 一.dot()的使用 参考文档:https://docs.scipy.org/doc/num ...

  4. numpy中矩阵运算的特点

    简 介: 在numpy中的一维和二维数组与线性代数中的矩阵和向量的概念有区别,也有联系.恰当掌握numpy中的矩阵运算特点可以大大提高程序的编写的效率.这其中需要不断的做斗争的就是区分一维向量与一维矩 ...

  5. numpy中向量和矩阵相关乘法总结

    numpy中矩阵相关乘法总结 一.numpy中向量和矩阵的概念 向量:1维 矩阵:至少是2维 注意:numpy中对于向量的定义与数学中对向量的定义有些不同,数学中对向量的定义是竖向写法,但由于nump ...

  6. numpy中的ravel()方法使用介绍

    numpy中的ravel()方法介绍:不论矩阵的维度是多少.使用ravel()可以让矩阵统统变为一维数组. 话不多说,直接上代码: import numpy as np # 导入numpy模块a, b ...

  7. matlab怎么算2乘2矩阵,【Matlab】2.矩阵的运算

    >> A=[1,2;3,4] A = 1     2 3     4 >> B=[0,1;1,0] B = 0     1 1     0 >> C=[i,1+i; ...

  8. python矩阵运算numpy_Python Numpy中的几个矩阵乘法

    数学上的内积.外积和叉积 内积 也即是:点积.标量积或者数量积 从代数角度看,先对两个数字序列中的每组对应元素求积,再对所有积求和,结果即为点积.从几何角度看,点积则是两个向量的长度与它们夹角余弦的积 ...

  9. 矩阵的二范数_Python Numpy中的范数

    数学概念 范数,是具有 "长度" 概念的函数.在线性代数.泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小. 在数学上,范数包括向量范数和矩阵 ...

最新文章

  1. git push VS git fetch
  2. Python包安装小技巧
  3. linux route命令详解
  4. php如何修改xml中element值,php修改xml节点的值
  5. Spring Cloud生态的构建
  6. Java Bean验证基础
  7. 正则表达式中的量词(限定符)含义的准确理解
  8. SpringBoot学习笔记2
  9. Linux调试时常见问题,C程序在linux下调试时经常出现的问题
  10. [CTO札记]第1天:认识人、熟悉环境
  11. 洛谷——P2820 局域网
  12. Remove advertisement of Storm 5
  13. ASP.NET中Button控件的CommandName和CommandArgument属性用法
  14. Windows10服务优化
  15. SpringBoot整合银联支付
  16. OpenTracing 简介
  17. GroovyGrails
  18. 强化学习8-时序差分控制离线算法Q-Learning
  19. C#使用ODBC链接MySQL数据库
  20. 时序逻辑电路总结【一】触发器

热门文章

  1. 发布几个常用Docker基础环境镜像
  2. 在 Windows 7 下安装 Hyper-V manager
  3. jQuery使用之(一)标记元素属性
  4. AndroidManifest.xml配置详解
  5. LYNC2013部署系列PART2:后端部署
  6. WCF4.0进阶系列--第四章 保护企业内部的WCF服务(转)
  7. ubuntu下 mysql数据 自执行备份
  8. Java的三大特性之继承
  9. 【深度学习】深入理解Batch Normalization批标准化
  10. Android应用开发—TextView的动态创建