numpy 是否为零_Python学习第117课--numpy中dot的运用举例

【每天几分钟,从零入门python编程的世界!】

上节我们学习了最基础的matrix的运算,可能有小伙伴觉得这都要涉及高等数学知识了,确实如果你想做数据科学、做人工智能,统计学、概率论等数学知识,尤其是算法是绕不过去的坎,但是不要怕!!!我们现在入门阶段知道有这个概念就行,能解决实际问题就行,后面遇到了问题再去深入。现在我们是为了入门,入门之后,你可以根据自身的底子去选择发展方向。

闲话少叙,我们对numpy中的矩阵相乘做一些举例说明。

我们还是使用上节的两个矩阵为例。

上节我们用手写推导矩阵相乘过程如下:

numpy 是否为零_Python学习第117课--numpy中dot的运用举例_第1张图片

我们现在用代码演示一下numpy中的矩阵相乘。我们知道如果两个数组都是2维以上才能用矩阵相乘。

用代码生成两个2行2列的数组x和y(跟我们手写推导时的矩阵x和y结构一样,都是2行2列),然后进行矩阵相乘。

numpy 是否为零_Python学习第117课--numpy中dot的运用举例_第2张图片

运行结果:

numpy 是否为零_Python学习第117课--numpy中dot的运用举例_第3张图片

由上面代码我们看到,运算结果和我们手写推导出来的结果一模一样。

另外numpy.dot有2种写法:

①x.dot(y)

②np.dot(x,y)

我们知道两个数组都是1维数组时的numpy.dot的,是计算空间向量的内积。现在我们计算两个一维数组i和j的乘积。

假设i和j这两个1维数组如下:

i = [3 0],j = [0 4]

把i和j看做空间向量,相当于i的坐标为(3,0),j的坐标为(0,4)。

如下图:

numpy 是否为零_Python学习第117课--numpy中dot的运用举例_第4张图片

我们根据上图可知,i和y是垂直的,即夹角是90度,所以cos90°的值是0,所以i.j的内积就是0。

那么我们在numpy中用代码计算i和j的点乘,看看结果是不是0。

numpy 是否为零_Python学习第117课--numpy中dot的运用举例_第5张图片

运算结果:

753abff49aedf4b53456c46f7f4b538c.png

我们看到通过numpy的代码运算结果,和我们用空间向量计算内积的结果是一致的。

大家可以自己在Python中输入以上代码试试。

总结:

学到这里,我们就把numpy中数组的相乘主要分为两种:

①通过*和np.multiply()直接相乘,也就是对位相乘。

②点乘,我们把np.dot方法进行相乘叫做点乘。

np.dot方法,如果两个同时都是1维的数组相乘,运算过程相当于在空间意义上计算向量的内积;如果两个同时都是2维以上的数组相乘,运算过程相当于两个矩阵进行相乘

我是时问新,欢迎关注我。跟我一起从零开始学习Python,每天花一点时间,开启python编程新世界的大门,领略新的风光,让人生多一种可能!

你可能感兴趣的:(numpy,是否为零)