qianshang666 发表于 2021-3-11 00:53

【笔记】python数据分析——矩阵相乘

本帖最后由 qianshang666 于 2021-3-11 01:05 编辑

## 往期数据分析笔记
[【笔记】python数据分析——numpy初识1](https://www.52pojie.cn/thread-1381772-1-1.html)
[【笔记】python数据分析——numpy初识2](https://www.52pojie.cn/thread-1382691-1-1.html)
[【笔记】python数据分析——变换与编程中的轴](https://www.52pojie.cn/thread-1383508-1-1.html)
[【笔记】python数据分析——numpy随机数函数](https://www.52pojie.cn/thread-1386199-1-1.html)
[【笔记】python数据分析——numpy数组索引及切片](https://www.52pojie.cn/thread-1386446-1-1.html)
[【笔记】python数据分析——元素级运算及通用函数](https://www.52pojie.cn/thread-1387623-1-1.html)
[【笔记】python数据分析——条件逻辑运算](https://www.52pojie.cn/thread-1387803-1-1.html)
[【笔记】python数据分析——统计学运算](https://www.52pojie.cn/thread-1387994-1-1.html)
## 矩阵相乘
在开始之前,我先创建两个数组矩阵
```
import numpy as np
arr1 = np.random.randint(1,4,(2,2))
arr2 = np.random.randint(1,4,(2,2))
print(arr1)
print(arr2)
```
运行结果:
[
]
[   
]
### 使用对矩阵的加减乘除方法
```
print(arr1*arr2)
```
运行结果:
[   
]
这个我们就发现,这个运行结果的由来是两个矩阵的数一一对应相乘得到的,因为numpy数组都是元素级运算,都是直接作用在各个元素中的
### dot(矩阵相乘)
我们今天说的矩阵相乘并不是指上面那种元素级运算的相乘,而是用dot进行的矩阵相乘
```
print(np.dot(arr1,arr2))
```
运行结果:
[[ 63]
]

### 详解

分析:
第一个数6的算法:`2*2+2*1=6`
第二个数12的算法:`2*3+2*3=12`
第三个数7的算法:`3*2+1*1=7`
第四个数12的算法:`3*3+1*3=12`

我自己打了好多字,但我都觉得初学者看我写的理解起来有难度,所以我找了两张图片给大家看一下,这两张图可以说是很清晰了



**不同行列的可以相乘,不过有限制条件
3×5   5×4**
**如上面这种X×Y与Y×Z的矩阵就可以相乘,因为他们内角都是Y这个数
他们相乘的结果必然是X行Z列的**
## 今日鸡汤
在逆境中,智者知难而进,愚者消沉不前。与其相信依靠别人,不如相信依靠自己,那些看似到不了的未来,都会成为你经历过的云淡风轻!

hor5 发表于 2021-3-11 06:33

dot——点乘

李喔 发表于 2021-3-11 08:11

谢谢楼主!!!!

zj1977lsz 发表于 2021-3-11 08:16

感谢楼主的分享,学习了

ytahdou 发表于 2021-3-11 09:01

点赞送给努力和用心的人,楼主用心了!!!

qianshang666 发表于 2021-3-11 09:02

:lol共同学习,共同进步

qianshang666 发表于 2021-3-11 09:26

ytahdou 发表于 2021-3-11 09:01
点赞送给努力和用心的人,楼主用心了!!!

感谢你的支持,你的支持是我最大的动力

慕涯 发表于 2021-3-11 14:58

楼主加油。真棒
页: [1]
查看完整版本: 【笔记】python数据分析——矩阵相乘