首页 > 解决方案 > 使用 Numpy [Python] 进行元素智能乘法

问题描述

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

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

在此处输入图像描述

如果可以提供帮助,这是我的原始功能。 在此处输入图像描述

谁能帮我在这里找到错误的来源?

标签: pythonlistnumpymatrixnumpy-ndarray

解决方案


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

编辑解释了 numpy 在使用维度数组(n,)(n,1).


推荐阅读