对Python 中矩阵或者数组相减的法则详解


Posted in Python onAugust 26, 2019

最近在做编程练习,发现有些结果的值与答案相差较大,通过分析比较得出结论,大概过程如下:

定义了一个计算损失的函数:

def error(yhat,label):
 yhat = np.array(yhat)
 label = np.array(label)
 error_sum = ((yhat - label)**2).sum()
 return error_sum

主要出现问题的是 yhat - label 部分,要强调的是一定要保证两者维度是相同的!这点很重要,否则就会按照python的广播机制进行运算,举个例子:

a = np.array([1,2,3])
a0 = np.array([[1],[2],[3]])
b = np.array([2,3,5,])
print(b-a)
print(b-a0)

这里a的维度是(3,),因为是由列表转化成的数组(当然不是很推荐这种维度,因为很容易犯错),a0的维度是(3,1),b的维度是(3,),a与b的维度相同,在计算b-a的时候,结果显而易见:

对Python 中矩阵或者数组相减的法则详解

b - a0 的结果:

对Python 中矩阵或者数组相减的法则详解

产生这种结果的原因是因为由于维度不同,在计算的时候将b变为了与a0同样的3行的数组,变化后b的维度变为了(3,3),等同于如下的计算:

b = np.array([[2,3,5],
    [2,3,5],
    [2,3,5]])
a0 = np.array([[1],
    [2],
    [3]])
b - a0

结果仍然为:

对Python 中矩阵或者数组相减的法则详解

以上这篇对Python 中矩阵或者数组相减的法则详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
让python 3支持mysqldb的解决方法
Feb 14 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
Django使用httpresponse返回用户头像实例代码
Jan 26 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
详解python中的hashlib模块的使用
Apr 22 Python
浅谈python新式类和旧式类区别
Apr 26 Python
pytorch梯度剪裁方式
Feb 04 Python
keras中的History对象用法
Jun 19 Python
对Python 字典元素进行删除的方法
Jul 31 Python
python使用bs4爬取boss直聘静态页面
Oct 10 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
关于python scrapy中添加cookie踩坑记录
Nov 17 Python
Numpy 中的矩阵求逆实例
Aug 26 #Python
利用python-docx模块写批量生日邀请函
Aug 26 #Python
在python Numpy中求向量和矩阵的范数实例
Aug 26 #Python
Python 如何提高元组的可读性
Aug 26 #Python
Python使用python-docx读写word文档
Aug 26 #Python
Python Subprocess模块原理及实例
Aug 26 #Python
python自动循环定时开关机(非重启)测试
Aug 26 #Python
You might like
Session 失效的原因汇总及解决丢失办法
2015/09/30 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
JavaScript小技巧 2.5 则
2010/09/12 Javascript
JS拖动技术 关于setCapture使用
2010/12/09 Javascript
用javascript模仿ie的自动完成类似自动完成功的表单
2012/12/12 Javascript
angularJS中$apply()方法详解
2015/01/07 Javascript
jQuery功能函数详解
2015/02/01 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
jQuery页面刷新(局部、全部)问题分析
2016/01/09 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
vue组件编写之todolist组件实例详解
2018/01/22 Javascript
Angular实现的进度条功能示例
2018/02/18 Javascript
Angular中sweetalert弹框的基本使用教程
2018/07/22 Javascript
如何手动实现es5中的bind方法详解
2018/12/07 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
vue data对象重新赋值无效(未更改)的解决方式
2020/07/24 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
Python中实现switch功能实例解析
2018/01/11 Python
python中pip的安装与使用教程
2018/08/10 Python
Python pandas DataFrame操作的实现代码
2019/06/21 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
使用layui框架实现点击左侧导航切换右侧内容且右侧选项卡跟随变化的效果
2020/11/10 HTML / CSS
社区志愿者心得体会
2014/01/03 职场文书
运动会解说词100字
2014/01/31 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
2015年七一建党节慰问信
2015/03/23 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
2015年学校政教处工作总结
2015/05/26 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书
Spring 使用注解开发
2022/05/20 Java/Android
MySQL索引失效场景及解决方案
2022/07/23 MySQL