对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(一)Python环境安装
Aug 20 Python
在python的类中动态添加属性与生成对象
Sep 17 Python
python 用正则表达式筛选文本信息的实例
Jun 05 Python
python判断文件是否存在,不存在就创建一个的实例
Feb 18 Python
python3.6 如何将list存入txt后再读出list的方法
Jul 02 Python
python爬虫爬取笔趣网小说网站过程图解
Nov 18 Python
利用Python的turtle库绘制玫瑰教程
Nov 23 Python
python 实现字符串下标的输出功能
Feb 13 Python
Django CSRF认证的几种解决方案
Mar 03 Python
浅谈Python程序的错误:变量未定义
Jun 02 Python
Python+uiautomator2实现自动刷抖音视频功能
Apr 29 Python
使用python创建股票的时间序列可视化分析
Mar 03 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
SMARTY学习手记
2007/01/04 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
PHP 第二节 数据类型之数组
2012/04/28 PHP
深入解析PHP中逗号与点号的区别
2013/08/05 PHP
PHP的Yii框架中使用数据库的配置和SQL操作实例教程
2016/03/17 PHP
php微信开发之谷歌测距
2018/06/14 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
Ubuntu中搭建Nodejs开发环境过程分享
2014/06/01 NodeJs
js实现键盘控制DIV移动的方法
2015/01/10 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
基于jQuery实现在线选座之高铁版
2015/08/24 Javascript
QRCode.js:基于JQuery的生成二维码JS库的使用
2017/06/23 jQuery
分析javascript原型及原型链
2018/03/18 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
JavaScript中var的重要性实例分析
2019/07/09 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
2020/04/27 Javascript
selenium 反爬虫之跳过淘宝滑块验证功能的实现代码
2020/08/27 Javascript
python中self原理实例分析
2015/04/30 Python
python使用psutil模块获取系统状态
2016/08/27 Python
浅谈python装饰器探究与参数的领取
2017/12/01 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
详解django的serializer序列化model几种方法
2018/10/16 Python
python程序控制NAO机器人行走
2019/04/29 Python
Python:合并两个numpy矩阵的实现
2019/12/02 Python
python实现打砖块游戏
2020/02/25 Python
关于tf.matmul() 和tf.multiply() 的区别说明
2020/06/18 Python
Python Matplotlib简易教程(小白教程)
2020/07/28 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
2021/01/06 Python
安全生产管理责任书
2014/04/16 职场文书
征用土地赔偿协议书
2014/09/26 职场文书
三年级学生评语大全
2014/12/26 职场文书