numpy中的矩阵与数学上的矩阵的关系
➤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ˉ=⎣⎢⎢⎢⎡x1x2⋮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=⎣⎡123246369⎦⎤
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中的矩阵与数学上的矩阵的关系相关推荐
- python定义一个空数组_在NumPy中如何创建一个空的数组/矩阵?
如何以我通常使用列表(List)的方式使用Numpy数组或矩阵? 我想创建一个空的数组(或矩阵),然后每次添加一列(或行)到这个数组(或矩阵). 目前能想到的方法是: mat = None for c ...
- 数学上各种空间概念的关系图
https://blog.csdn.net/cc1949/article/details/79744519 数学上有各种空间,概念容易混淆,为了记忆,整理出一张关系图. 目前不清楚无限维的内积空间是什 ...
- 对NumPy中dot()函数的理解(亲测,矩阵算法)
今天学习到numpy基本的运算方法,遇到了一个让我比较难理解的问题.就是dot函数是如何对矩阵进行运算的. 一.dot()的使用 参考文档:https://docs.scipy.org/doc/num ...
- numpy中矩阵运算的特点
简 介: 在numpy中的一维和二维数组与线性代数中的矩阵和向量的概念有区别,也有联系.恰当掌握numpy中的矩阵运算特点可以大大提高程序的编写的效率.这其中需要不断的做斗争的就是区分一维向量与一维矩 ...
- numpy中向量和矩阵相关乘法总结
numpy中矩阵相关乘法总结 一.numpy中向量和矩阵的概念 向量:1维 矩阵:至少是2维 注意:numpy中对于向量的定义与数学中对向量的定义有些不同,数学中对向量的定义是竖向写法,但由于nump ...
- numpy中的ravel()方法使用介绍
numpy中的ravel()方法介绍:不论矩阵的维度是多少.使用ravel()可以让矩阵统统变为一维数组. 话不多说,直接上代码: import numpy as np # 导入numpy模块a, b ...
- 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; ...
- python矩阵运算numpy_Python Numpy中的几个矩阵乘法
数学上的内积.外积和叉积 内积 也即是:点积.标量积或者数量积 从代数角度看,先对两个数字序列中的每组对应元素求积,再对所有积求和,结果即为点积.从几何角度看,点积则是两个向量的长度与它们夹角余弦的积 ...
- 矩阵的二范数_Python Numpy中的范数
数学概念 范数,是具有 "长度" 概念的函数.在线性代数.泛函分析及相关的数学领域,范数是一个函数,是矢量空间内的所有矢量赋予非零的正长度或大小. 在数学上,范数包括向量范数和矩阵 ...
最新文章
- git push VS git fetch
- Python包安装小技巧
- linux route命令详解
- php如何修改xml中element值,php修改xml节点的值
- Spring Cloud生态的构建
- Java Bean验证基础
- 正则表达式中的量词(限定符)含义的准确理解
- SpringBoot学习笔记2
- Linux调试时常见问题,C程序在linux下调试时经常出现的问题
- [CTO札记]第1天:认识人、熟悉环境
- 洛谷——P2820 局域网
- Remove advertisement of Storm 5
- ASP.NET中Button控件的CommandName和CommandArgument属性用法
- Windows10服务优化
- SpringBoot整合银联支付
- OpenTracing 简介
- GroovyGrails
- 强化学习8-时序差分控制离线算法Q-Learning
- C#使用ODBC链接MySQL数据库
- 时序逻辑电路总结【一】触发器