python关于矩阵重复赋值覆盖问题的解决方法


Posted in Python onJuly 19, 2019

本文实例讲述了python关于矩阵重复赋值覆盖问题的解决方法。分享给大家供大家参考,具体如下:

import itertools
import numpy as np
comb = list(itertools.combinations(list(range(regions)), 2))
bands_info = []
coeff = np.zeros([bands, len(comb)])
for cla in range(classes):
  class_info = data[:,cla*bands*regions:(cla+1)*bands*regions]
  for bs in range(bands):
    n = bs*regions
    for i in range(len(comb)):
      index1 = comb[i][0]+n
      index2 = comb[i][1]+n
      part1 = class_info[:, index1]
      part2 = class_info[:, index2]
      coeff[bs, i] = (np.corrcoef(part1, part2))[0, 1]
  bands_info.append(coeff.reshape([1,-1]))
coeff_info = np.vstack((bands_info[0], bands_info[1], bands_info[2],bands_info[3]))

例如这个循环赋值过程,最终得出来的结果是bands_info这个List里面每一个矩阵都是一样的,这是为什么呢?我一开始也在这里纠结了很长时间,思来想去感觉没错的呀。后来想想以前学的C语言知识,才有点明白。原来python里面有浅层copy和深层copy这一说,同是一个矩阵的话占用的是同一个地址,在里面进行重复赋值的话前面的值都会被覆盖掉。不只是当前变量被覆盖掉,就是你之后用到这个变量的也会被覆盖。比如说你a的变量被b覆盖了,那你后面用到a的变量的地方,a的值也会变成b的值。是不是很可怕。

那么应该怎么进行修改呢?

import itertools
import numpy as np
comb = list(itertools.combinations(list(range(regions)), 2))
bands_info = []
for cla in range(classes):
  coeff = np.zeros([bands, len(comb)])
  class_info = data[:,cla*bands*regions:(cla+1)*bands*regions]
  for bs in range(bands):
    n = bs*regions
    for i in range(len(comb)):
      index1 = comb[i][0]+n
      index2 = comb[i][1]+n
      part1 = class_info[:, index1]
      part2 = class_info[:, index2]
      coeff[bs, i] = (np.corrcoef(part1, part2))[0, 1]
  bands_info.append(coeff.reshape([1,-1]))
coeff_info = np.vstack((bands_info[0], bands_info[1], bands_info[2],bands_info[3]))

改成这样就可以了。就是将初始矩阵在循环里在重新设定一遍,意思相当就是给了一次新的地址,再进行复制的话就不会覆盖前面的结果了。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python 文件和路径操作函数小结
Nov 23 Python
在python中的socket模块使用代理实例
May 29 Python
python获取指定路径下所有指定后缀文件的方法
May 26 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
基于python的七种经典排序算法(推荐)
Dec 08 Python
利用python打印出菱形、三角形以及矩形的方法实例
Aug 08 Python
python3模块smtplib实现发送邮件功能
May 22 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
python flask web服务实现更换默认端口和IP的方法
Jul 26 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python [:3] 实现提取数组中的数
Nov 27 Python
Python+numpy实现矩阵的行列扩展方式
Nov 29 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 #Python
django中SMTP发送邮件配置详解
Jul 19 #Python
对Python函数设计规范详解
Jul 19 #Python
在django view中给form传入参数的例子
Jul 19 #Python
使用Python制作表情包实现换脸功能
Jul 19 #Python
解决Django一个表单对应多个按钮的问题
Jul 18 #Python
Django工程的分层结构详解
Jul 18 #Python
You might like
php数组函数序列之ksort()对数组的元素键名进行升序排序,保持索引关系
2011/11/02 PHP
在WordPress中获取数据库字段内容和添加主题设置菜单
2016/01/11 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
js下将字符串当函数执行的方法
2011/07/13 Javascript
Javascript实现带关闭按钮的网页漂浮广告代码
2014/01/12 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
学习JavaScript设计模式之策略模式
2016/01/12 Javascript
JavaScript正则表达式简单实用实例
2017/06/23 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
2017/12/29 Javascript
node.js通过axios实现网络请求的方法
2018/03/05 Javascript
微信小程序后端实现授权登录
2020/02/24 Javascript
JavaScript 链表定义与使用方法示例
2020/04/28 Javascript
JavaScript直接调用函数与call调用的区别实例分析
2020/05/22 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
[38:39]KG vs Mineski 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
分析Python中设计模式之Decorator装饰器模式的要点
2016/03/02 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
python中快速进行多个字符替换的方法小结
2016/12/15 Python
python使用Matplotlib画饼图
2018/09/25 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
python模块导入的细节详解
2018/12/10 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
python可视化爬虫界面之天气查询
2019/07/03 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
tensorflow tf.train.batch之数据批量读取方式
2020/01/20 Python
Python模拟FTP文件服务器的操作方法
2020/02/18 Python
Django2.1.7 查询数据返回json格式的实现
2020/12/29 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
JSF面试题:Jsf中导航的标签是什么
2013/04/20 面试题
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书