对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 多进程通信模块的简单实现
Feb 20 Python
Python3基础之条件与循环控制实例解析
Aug 13 Python
Python实现抓取城市的PM2.5浓度和排名
Mar 19 Python
Java Web开发过程中登陆模块的验证码的实现方式总结
May 25 Python
matplotlib设置legend图例代码示例
Dec 19 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
Jun 11 Python
使用Python更换外网IP的方法
Jul 09 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
Jan 08 Python
详解python--模拟轮盘抽奖游戏
Apr 12 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
python可迭代对象去重实例
May 15 Python
pandas apply使用多列计算生成新的列实现示例
Feb 24 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
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
php生成随机密码的三种方法小结
2010/09/04 PHP
PHP备份数据库生成SQL文件并下载的函数代码
2012/02/05 PHP
PHP正则+Snoopy抓取框架实现的抓取淘宝店信誉功能实例
2017/05/17 PHP
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
jQuery移除元素自动解绑事件实现思路及代码
2014/05/31 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
浅谈Javascript中的Function与Object
2015/01/26 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jQuery插件jquery-barcode实现条码打印的方法
2015/11/25 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
jQuery之简单的表单验证实例
2016/07/07 Javascript
angularjs+bootstrap实现自定义分页的实例代码
2017/06/19 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
vue-cli 打包使用history模式的后端配置实例
2018/09/20 Javascript
JavaScript继承的特性与实践应用深入详解
2018/12/30 Javascript
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
浅谈vue加载优化策略
2019/03/19 Javascript
小程序实现点击tab切换左右滑动
2020/11/16 Javascript
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
关于pip的安装,更新,卸载模块以及使用方法(详解)
2017/05/19 Python
Flask框架模板渲染操作简单示例
2019/07/31 Python
python中数据库like模糊查询方式
2020/03/02 Python
Python tkinter实现简单加法计算器代码实例
2020/05/13 Python
通过代码实例了解Python sys模块
2020/09/14 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
购买正版游戏和游戏激活码:Green Man Gaming
2019/11/06 全球购物
Linux如何修改文件和文件夹的权限
2012/06/27 面试题
劳资员岗位职责
2013/11/11 职场文书
策划助理岗位职责
2013/11/18 职场文书
咖啡店创业计划书范文
2014/09/15 职场文书
银行党员批评与自我批评
2014/10/15 职场文书
2014年节能工作总结
2014/12/18 职场文书
2015年审计人员工作总结
2015/05/26 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
Java Spring Boot 正确读取配置文件中的属性的值
2022/04/20 Java/Android