使用 Numpy [Python] 进行元素明智的乘法

Element wise multiplication using Numpy [Python]

我正在尝试使用普通 * 来获取按元素的多重复制,并且我尝试了 np.multiply(),两者都给出了一个奇怪的答案。

现在 (1-y) 是 (100,) 而 np.log(1-sigmoid(np.dot(X,theta)))) 是 (100,1),所以当我按元素乘以它们,它应该给出(100,1);但它给了我 (100,100) 个矩阵(所有都突出显示为蓝色)

如果有帮助的话,这是我的原始功能。

任何人都可以帮我在这里获取错误的来源吗?

我不是 100% 确定为什么 python 这样做,但解决它的方法是应用 np.reshape((1-y),(100,1)) 然后应用 np.multiply()。一般来说,重塑数组并赋予它们第二维总是更好。

编辑This 解释了在使用维度数组 (n,)(n,1).[=15= 时 numpy 如何进行广播]