在进行机器学习、神经网络的变成过程当中,基本上是一定会使用到矩阵或者向量的,但是如果不了解Python/Numpy中的矩阵或者向量的特性,则会经常出现一些自己意想不到的bug,并且调试起来非常困难。
下面我们就来看看它们有哪些特性。
一、首先我们先一起了解一下Python/Numpy中的广播(Broadcasting)特性
在python或者Numpy中,如果你用一个向量 和一个 常数相加,会有什么效果? 如下面的例子:
系统不会因为维度不一致而报错,而是自动把常数100扩展成一个3行1列的矩阵,然后再进行相加,也就相当于:
这其实就是python/Numpy的广播特性了,再看一个例子,看看下面这个矩阵算是,Python会怎么处理?
我想你一定猜到了,就是将第二个1行3列的矩阵,自动扩展成2行3列,然后再进行计算,如下