numpy中一个列向量乘以一个行向量为什么是一个数

平时在学习使用numpy库时,会遇到一种情况,假如说我想计算一个列向量乘以一个行向量的结果,我们的思路大概是这样:
首先创建一个数组,里面包含3个数字,查看一下数据和数据的形状:
在这里插入图片描述
一个列向量乘以一个行向量,常规思路是np.dot(a.T,a),就是a和它的转置相乘,先看一下a.T长啥样:
在这里插入图片描述
这里发现a和a.T形状竟然一样,都是(3,)
看一下计算结果:
在这里插入图片描述
本来以为是一个3*3的矩阵,结果是一个数。
原因就出现在a.T的形状,这里需要注意,不要把numpy的数组错理解为向量。
要实现我们想要的效果,我们只需要做一点小小的改动:将第一行代码修改为a = np.random.randn(1,3)
看一下结果:
在这里插入图片描述

发布了5 篇原创文章 · 获赞 19 · 访问量 1067

猜你喜欢

转载自blog.csdn.net/weixin_44976373/article/details/104446324