python - 使用 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()
。一般来说,重塑数组并赋予它们第二维总是更好。
编辑:这解释了 numpy 在使用维度数组(n,)
和(n,1)
.
推荐阅读
- python - 如何在while循环中进入下一次迭代?
- vba - 如果不存在,则创建文件夹,使用 VBA 在 Windows 操作系统中有效,但在 MAC 操作系统中无效
- function - Rust:将函数/过滤器传递给 Tera 模板
- javascript - 谷歌图片搜索如何获取相似图片的数量
- angular - 如何在 jasmine 中编写单元测试用例?
- java - 将 Kotlin 集合(.find、.map)转换为 Java
- image - 加载图像后 Flutter changenotifier 不更新或调用绘图功能?
- c# - 如何“更改”列表/数组/可枚举中的记录?
- javascript - React hook,使用useState时的连线问题,而如果使用setState可以正常工作,如何解决
- android - Android Kotlin 访问下载目录中的文件 API > 29