python输出特征相关矩阵_两个特征矩阵的有效成对相关

2023-11-10

似乎^{}遵循了皮尔逊相关系数公式的定义,该公式适用于A&B-

基于这个公式,你可以很容易地将向量化,因为A和{}列的成对计算是相互独立的。这里有一个使用^{}-# Get number of rows in either A or B

N = B.shape[0]

# Store columnw-wise in A and B, as they would be used at few places

sA = A.sum(0)

sB = B.sum(0)

# Basically there are four parts in the formula. We would compute them one-by-one

p1 = N*np.einsum('ij,ik->kj',A,B)

p2 = sA*sB[:,None]

p3 = N*((B**2).sum(0)) - (sB**2)

p4 = N*((A**2).sum(0)) - (sA**2)

# Finally compute Pearson Correlation Coefficient as 2D array

pcorr = ((p1 - p2)/np.sqrt(p4*p3[:,None]))

# Get the element corresponding to absolute argmax along the columns

out = pcorr[np.nanargmax(np.abs(pcorr),axis=0),np.arange(pcorr.shape[1])]

样本运行-

1)输入:

^{pr2}$

2)原始循环代码运行-In [14]: high_corr_out = np.zeros(A.shape[1])

...: for A_col in range(A.shape[1]):

...: high_corr = 0

...: for B_col in range(B.shape[1]):

...: corr,_ = pearsonr(A[:,A_col], B[:,B_col])

...: high_corr = max_absolute(high_corr, corr)

...: high_corr_out[A_col] = high_corr

...:

In [15]: high_corr_out

Out[15]: array([ 0.8067843 , 0.95678152, 0.74016181, -0.85127779])

3)建议代码运行-In [16]: N = B.shape[0]

...: sA = A.sum(0)

...: sB = B.sum(0)

...: p1 = N*np.einsum('ij,ik->kj',A,B)

...: p2 = sA*sB[:,None]

...: p3 = N*((B**2).sum(0)) - (sB**2)

...: p4 = N*((A**2).sum(0)) - (sA**2)

...: pcorr = ((p1 - p2)/np.sqrt(p4*p3[:,None]))

...: out = pcorr[np.nanargmax(np.abs(pcorr),axis=0),np.arange(pcorr.shape[1])]

...:

In [17]: pcorr # Pearson Correlation Coefficient array

Out[17]:

array([[ 0.41895565, -0.5910935 , -0.40465987, 0.5818286 ],

[ 0.66609445, -0.41950457, 0.02450215, 0.64028344],

[-0.64953314, 0.65669916, 0.30836196, -0.85127779],

[-0.41917583, 0.59043266, 0.40364532, -0.58144102],

[ 0.8067843 , 0.07947386, 0.74016181, 0.53165395],

[-0.1613146 , 0.95678152, 0.62107101, -0.4215393 ]])

In [18]: out # elements corresponding to absolute argmax along columns

Out[18]: array([ 0.8067843 , 0.95678152, 0.74016181, -0.85127779])

运行时测试-In [36]: A = np.random.rand(4000,40)

In [37]: B = np.random.rand(4000,144)

In [38]: np.allclose(org_app(A,B),proposed_app(A,B))

Out[38]: True

In [39]: %timeit org_app(A,B) # Original approach

1 loops, best of 3: 1.35 s per loop

In [40]: %timeit proposed_app(A,B) # Proposed vectorized approach

10 loops, best of 3: 39.1 ms per loop

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python输出特征相关矩阵_两个特征矩阵的有效成对相关 的相关文章

  • 五大常用算法之四:分治法

    分治法和动态规划有点像 都是分解成子问题 中科大的张署老师课件很清楚 摘录如下 1 什么是分治法 当求解的问题较复杂或规模较大时 不能立刻得到原问题的解 但这些问题本身具有这样的特点 它可以分解为若干个与原问题性质相类似的子问题 而这些子问
  • 加载超炫动画

    1 MainActivity 1 package com zyhui zyh splash 2 3 import android os Bundle 4 import android os Handler 5 import android
  • 谈谈中间件开发,给想从事中间件开发的同学

    前言 本文主要是写给那些想从事中间件开发的同学看的 如果你没有这个打算 那么本文的学习路线非但不实用 还可能会影响你正常的工作 什么是中间件开发 随着国内软件行业的发展 国内互联网公司规模越来越大 业务越来越复杂 随之使用大量的中间件来提高
  • 【unity3d之UI界面学习】NGUI插件的导入步骤

    首先将下载好的NGUI资源包 我下载的是3 11 4版本 导入到引擎中进行使用 在unity3d界面点击鼠标右键 弹出的菜单送选中import package 然后选择custom package 自定义资源包 弹出资源路径窗口 找到NGU
  • 得物H5页面url中sign逆向分析

    一 抓包分析 https app dewu com api v1 h5 activity fire activity platform product feeds recommend detail sign b3e37ea512b177be
  • Java 字符流和字符缓冲流

    文章目录 1 字符的编码解码 2 字符流 2 1 字符输出流 写数据 2 2 字符输入流 读数据 2 3 案例 3 字符缓冲流 3 1 字符缓冲输入流 读数据 3 2 字符缓冲输出流 写数据 3 3 案例 4 小结 1 字符的编码解码 wi
  • emWin - BMP图片显示

    BmpCvt exe 用途 利用BMP图片 进行GUI显示 ICON等图标都是小BMP图片 核心是将BMP图片 转成emWin支持的方式 最终显示到TFT屏上 使用BmpCvt exe工具 将各个图片转成相应的C文件 emWin有关的工具
  • 微信小程序练手项目(云开发)

    入门回顾 微信开放社区 https developers weixin qq com community develop doc 000c2e7a3d0c501c95b9c3c935640d 1 小程序 注册 使用 配置 2 小程序的逻辑层
  • Unity5.3资源热更新

    转载自 http blog csdn net l jinxiong article details 50877926 Unity5以下的版本 要导出AssetBundle需要自己写一大坨导出的代码 BuildPipeline 想正确处理好资
  • 教妹学Java(十七):do-while 循环

    大家好 我是沉默王二 一个和黄家驹一样身高 和刘德华一样颜值的程序员 本篇文章通过我和三妹对话的形式来谈一谈 do while 循环 教妹学 Java 没见过这么有趣的标题吧 语不惊人死不休 没错 本篇文章的标题就是这么酷炫 接受不了的同学
  • JS遍历对象的七种方法

    一 for in let obj name cheng sex man Object defineProperty obj age value 18 enumerable true for item in obj console log i
  • 苹果商店上架流程_App上架苹果流程及注意事项

    APP上架是 APP应用从提交审核到上架整个过程 目的是让应用展示在APP Store上获取流量及用户 一 IOS上架整个流程 1 申请开发者账号 2 创建APP ID及申请证书 3 itunes connect 创建APP 4 打包 上传
  • 小程序 video 组件播放本地视频(黑屏无法播放,报错:MEDIA_ERR_SRC_NOT_SUPPORTED)

    小程序播放本地视频 黑屏无法播放 报错 MEDIA ERR SRC NOT SUPPORTED
  • VS9(vs2008) 下 Debug 显示 UTF8 字符串

    默认的 VC调试器只能正常显示ANSI字符串及UNICODE字符串 而UTF 8字符串及其他格式则无法显示 这里无需编写插件及修改配置文件 只需要将要显示的字符串拉到Watch中 并在变量后面添加 s8即可显示 gt 同样类型的功能也应该很
  • Anaconda-tensorflow-keras安装方法学习

    目录 开发工具 Anaconda 下载 安装与配置 Anaconda 下载 Anaconda 安装 Anaconda 安装问题 Anaconda 添加清华镜像源 安装tensorflow 接着安装keras 使用Jupyter notebo
  • FI 总账科目(GL),应付款方(供应商),应收款方(客户)的主要数据库表流向及说明

    学习FI模块也有几天了 今天的视频冲击 现在基本有点模型了 现将整理好的成果依次发布出 首先说下该模块中主要数据流向 BSIK 是供应商的未清项表 BSAK 是供应商的已清项表 BSID 是客户的未清项表 BSAD 是客户的已清项表 BSI
  • CentOS利用expect批量推送ssh public key的脚本

    方法1 bin bash Author Razor QQ 254456122 Date 2021 10 29 FileName sshkey sh URL https blog csdn net mandarin meng spm 1019
  • 使用预训练模型运行DiffusionDetection

    工程链接 https github com ShoufaChen DiffusionDet DIffusionDet需要的基础环境及各种包都配置好了 接下来我们开始用Pre trained Model来运行demo py 1 打包下载工程
  • Shell脚本之read用法

    read 默认接受键盘的输入 回车符代表输入结束 read命令选项 p 打印信息 t 限定时间 s 不回显 n 输入字符个数 bin bash clear echo n e Login read acc read p Login acc e

随机推荐

  • python函数练习题讲解

    自学的知识 用来记录一下 练习 1 写一个打印一条横线的函数 提示 横线是若干个 组成 2 写一个函数 可以通过输入的参数 打印出自定义行数的横线 提示 调用上面的函数 3 写一个函数求三个数的和 4 写一个函数求三个数的平均值 提示 调用
  • va_start和va_end详解

    1 在C中 当无法列出传递函数的所有实参的类型和数目时 可以用省略号指定参数表 例如 void foo void foo parm list 2 函数参数的传递原理 函数参数是以栈的形式存取 从右至左入栈 参数的内存存放格式 参数存放在内存
  • 如何查看海思SDK的版本

    命令 cat proc umap vpss 效果如下 第一行的version就是版本信息
  • html学习——表格标签

    表格 1 1 1 2 1 3 2 1 2 2 2 3 3 1 3 2 3 3 table border 1px tr td 1 1 td td 1 2 td td 1 3 td tr tr td 2 1 td td 2 2 td td 2
  • css3直线运动_CSS3实现动画线条运动效果实例集合(一)

    在我们日常的开发中 有时候有的图片 布局块需要加一下边框运动效果 对于这些效果 我们可以使用CSS3动画属性animation 再配合css的一些技巧制作出来 下面是收藏的一些效果实例 1 边框流动效果 html css3效果的内容部分 c
  • 手写一个react-redux,原理一目了然

    react redux的功能如下 Provider 为后代组件提供store connect 为组件提供数据和变更方法 数据变化时自动更新组件 了解react redux的功能移步这里 下面我们开始实现react redux的几个功能 my
  • curl命令忽略不受信任的https安全限制

    用curl命令没有得到返回 还报了个提示 curl 60 Issuer certificate is invalid More details here http curl haxx se docs sslcerts html curl p
  • idea学习系列五之debug及插件的使用

    idea学习系列五之debug及插件的使用 上一篇 介绍了maven及服务器的使用 这里将介绍idea中debug及插件的使用 在实际开发中debug是最常用的了 而且idea相比于eclipse中的debug还新增了一些比较好用的功能 还
  • 微信小程序教你实现双层嵌套菜单栏

    最近在做的项目有这样一个需求 也不太好描述 就是有两个顶部菜单栏 每个二级菜单栏的item都有自己页面 每个页面都可以通过左右滑动来切换 第一个想到的实现方法就是双层swiper嵌套 但想要达到一个联动的效果还是有一点点复杂 去网上找了一圈
  • IT-项目管理(大作业个人报告)

    文章目录 担任角色 开发方法 前端工作 CI CD流水线 担任角色 前端开发 CI CD流程实现 开发方法 基于现有框架Vue或React中的一种 使用iview或antd库 构建前端Web交互界面 对于已收集的需求 小组会议 论坛交流 看
  • 基于IO、NIO、Netty的Java网络程序

    基于IO NIO Netty的Java网络程序 一 IO 1 项目创建 2 代码 3 运行 二 NIO 1 项目创建 2 代码 3 运行 三 Netty 1 项目环境配置 2 代码 3 运行结果 总结 参考文章 一 IO 1 项目创建 在I
  • Junit单元测试,BIO、NIO、AIO概念、Buffer类,Channel通道

    单元测试 Junit介绍 Junit是一个Java语言的单元测试框架 简单理解为可以用取代Java的 部分 main方法 Junit属于第三方工具 需导入jar包后使用 Junit基本使用 Junit的作用 可以单独的运行某一个方法 Jun
  • LeetCode算法,每日一题,冲击字节跳动

    目录 1 LeetCode 20 有效的括号 题目 小编菜解 思路及算法 大神解法 2 LeetCode 26 删除有序数组中的重复项 题目 小编菜解初版 小编菜解改进版 思路及算法 大神解法 3 LeetCode 28 实现strStr
  • cmd停止情况

    情况描述 win10在使用cmd时 鼠标点击后出现cmd整个停止的情况 例如 在下载时 鼠标左键点击了cmd黑框里的内容 结果下载停止了 解决方式 出现这一情况的原因是 cmd开启了快速编辑模式 在cmd上框右键属性 关闭即可
  • 面向对象编程的六大原则

    一 面向对象编程的六大原则 单一责任原则 对类来说的 即一个类应该只负责一项职责 如类A负责两个不同职责 职责1 职责2 当职责1需求变更而改变A时 可能造成职责2执行错误 所以需要将类A的粒度分解为A1 A2 接口隔离原则 客户端不应该依
  • Pycharm Debug(断点调试)超详细攻略

    前言 PyCharm Debug 可以帮助开发者在代码运行时进行实时的调试和错误排查 提高代码开发效率和代码质量 当然也可以对源码进行断点调试 领略源码的魅力 具体操作步骤 准备一段代码 让我们来举个简单的栗子 这段代码主要作用 循环ran
  • VUE基本指令(v-model,v-html,v-text,v-bind,v-if,v-show,v-for,v-on:click,组件,过滤器)

    文章目录 双向数据绑定 v bind v bind title简化写法为 title 设置类名 v bind class 隐藏 显示元素 v if和v show v for 遍历数组 遍历对象 v on click 点击事件 简化语法 cl
  • 未授权访问漏洞1

    未授权访问漏洞产生的原因 未授权访问漏洞是站由于网站管理员对站点的资源所拥有的权限或站点配置文件没有进行合理的配置 导致没有进行授权的用户可以访问到高级资源 常见的未授权访问漏洞 1 Redis未授权访问 漏洞简述 Redis是一种缓存数据
  • 实现统计某个目录中的java文件个数(子目录也算进去)

    实现统计某个目录中的java文件个数 子目录也算进去 package com summer io01 import java io File public class Demo07 public static int javaFileNum
  • python输出特征相关矩阵_两个特征矩阵的有效成对相关

    似乎 遵循了皮尔逊相关系数公式的定义 该公式适用于A amp B 基于这个公式 你可以很容易地将向量化 因为A和 列的成对计算是相互独立的 这里有一个使用 Get number of rows in either A or B N B sh