每天五分钟带你解决一个深度学习问题。
我们先回忆一下如何创建向量与矩阵:
创建向量:
创建向量v1,注意此时我用的中括号层数为1
import numpy as np
v1 = np.array([1, 0])
v1
输出
array([1, 0])
创建矩阵:
创建矩阵m1,注意此时我用的中括号层数为2
import numpy as np
m1 = np.array([[1],[0]])
m1
输出
array([[1],
[0]])
观察一下,在numpy中,就是用中括号的层数来区别向量和矩阵的。
再来观察一下向量和矩阵的形状区别
向量的形状:
v1.shape
输出:
(2,)
看见没?括号里面只有一个数字,你想向量嘛,就是一条线,所以一个维度就ok了!那个2代表它在二维空间,也就是平面上。
那向量在三位空间是什么样呢?
比如向量,我把它画出来给你看:
v1 = np.array([1, 1,1])
v1.shape
输出:
(3,)
矩阵的形状
m1.shape
输出:
(2, 1)
矩阵嘛,就是一个坐标系,有x轴,有y轴才是坐标系,所以最少要有两个数字。那个2代表有两行,1代表有一列。
注意中括号不要写错啊!矩阵是由n行m列组成的,所以你在使用np.arrapy创建一个矩阵的时候,最少要有两层中括号。
现在你可以创建矩阵和向量了,而且了解到了最重要的形状秘密,接下来就干些更大的吧!
有了这些基础我们就可以讨论矩阵的运算了。
矩阵的加减
在做矩阵加减运算的时候,矩阵的形状必须一致。
m1 = np.array([[1,0],[0,1]])
m2 = np.array([[1,1],[1,1]])
m1.shape, m2.shape
输出
((2, 2), (2, 2))
矩阵相加
m1 + m2
#这里你可以把它理解成组成矩阵的向量之间进行加减操作再组合到一起。
array([[2, 1],
[1, 2]])
如果两个矩阵形状不一样呢?
m3 = np.array([[1],[0]])
m4 = np.array([[1],[1],[2]])
m3.shape, m4.shape
输出:
((2, 1), (3, 1))
接下来让他们相加
m3 + m4
输出:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-83-3ed5f6f38bd4> in <module>
----> 1 m3 + m4
ValueError: operands could not be broadcast together with shapes (2,1) (3,1)
由于形状不一样报错了!
既然你会了矩阵的加法,减法当然也难不住聪明的你了!
周末休息,可能会停更新!下周见!不过更新也说不定!O(∩_∩)O哈哈
目录:
人工智能必知必会-前言
人工智能必知必会-标量,向量,矩阵,张量
人工智能必知必会-向量的加减与缩放
人工智能必知必会-向量的内积
人工智能必知必会-向量之间的距离
人工智能必知必会-初识矩阵
人工智能必知必会-矩阵与向量
人工智能必知必会-矩阵的加减法
人工智能必知必会-矩阵乘法
人工智能必知必会-矩阵与方程组
人工智能必知必会-再看矩阵与向量
人工智能必知必会-矩阵与向量乘法的物理意义
人工智能必知必会-词向量(案例)
人工智能必知必会-矩阵相乘上
人工智能必知必会-矩阵相乘下