我目前正在通过计算机科学教科书中的一些概念。线性代数大量使用,他们在教科书中显示的例子都使用Numpy。Numpy:乘以一个向量
一个表情特别让我完全困惑,因为它似乎是一个完全无用的表达。从教科书逐字复制,它说:
normalisers = sum(exp(outputs),axis=1)*ones((1,shape(outputs)[0]))
所以,我会删除exp
为简化起见(这是不相关的这里的问题),这给了我们:
sum(outputs,axis=1)*ones((1,shape(outputs)[0]))
其中outputs
是二维Numpy array
(矩阵)。
据我所知,这只是求和outputs
矩阵中的所有行,然后将得到的向量乘以所有元素的向量。那么......这里所有的乘法点都有什么意义呢?它根本不会改变这些值。
这是教科书中的一个错误,还是我只是没有看到如何乘以所有的值可能对这里的值产生任何影响?在这一点上,我只对Numpy有些熟悉,所以我不确定我是不是误解了这个表达式的一些含义。
这是否会将结果从(dim,)向量更改为(1,dim)矩阵..?虽然我不会那样做! – jmetz 2012-07-25 16:30:58
我认为它可以在以后有所作为,无论矩阵是(n,)还是(1,n)大小...... – jmetz 2012-07-25 16:35:59