对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之复习if语句
Oct 02 Python
Python中关于字符串对象的一些基础知识
Apr 08 Python
python监控文件或目录变化
Jun 07 Python
详解Python 模拟实现生产者消费者模式的实例
Aug 10 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
Python自定义线程类简单示例
Mar 23 Python
python实现黑客字幕雨效果
Jun 21 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
python 非线性规划方式(scipy.optimize.minimize)
Feb 11 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
Pycharm修改python路径过程图解
May 22 Python
深度学习小工程练习之垃圾分类详解
Apr 14 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
在php中使用sockets:从新闻组中获取文章
2006/10/09 PHP
在Windows版的PHP中使用ADO
2006/10/09 PHP
php数组函数序列之array_push() 数组尾部添加一个或多个元素(入栈),返回新长度。
2011/11/07 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
javascript数组快速打乱重排的方法
2014/01/02 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
如何用vue-cli3脚手架搭建一个基于ts的基础脚手架的方法
2019/12/12 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python设计模式大全
2016/06/27 Python
python使用tensorflow保存、加载和使用模型的方法
2018/01/31 Python
Python实现购物车购物小程序
2018/04/18 Python
Python3匿名函数用法示例
2018/07/25 Python
Python logging模块用法示例
2018/08/28 Python
Laravel+Dingo/Api 自定义响应的实现
2019/02/17 Python
python获取Pandas列名的几种方法
2019/08/07 Python
python使用sklearn实现决策树的方法示例
2019/09/12 Python
Tensorflow不支持AVX2指令集的解决方法
2020/02/03 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
在python中修改.properties文件的操作
2020/04/08 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
css3 iphone玻璃透明气泡完美实现
2013/03/20 HTML / CSS
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
大一自我鉴定范文
2013/12/27 职场文书
医院门卫岗位职责
2013/12/30 职场文书
总经理司机岗位职责
2014/02/06 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
JavaScript中MutationObServer监听DOM元素详情
2021/11/27 Javascript