码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 相关系数矩阵转换成稀疏矩阵


    相关系数矩阵转换成稀疏矩阵

    如果你有一个相关系数矩阵,想要将其转化为一个包含三列(节点1、节点2、相关系数)的DataFrame,你可以使用Python的pandas库来实现。下面是一种可能的方法:

    假设你有一个相关系数矩阵correlation_matrix,其中行和列的标签是节点的名称,矩阵中的值是相关系数。你可以按照以下步骤操作:

    def get_graph(correlation_matrix):
        df = pd.DataFrame(columns=['node_0', 'node_1', 'weight'])
    
        # 使用两个嵌套循环遍历相关系数矩阵,提取相关系数和节点对
        for i in range(len(correlation_matrix.columns)):
            for j in range(i + 1, len(correlation_matrix.columns)):
    
                node1 = correlation_matrix.columns[i]
                node2 = correlation_matrix.columns[j]
                correlation = correlation_matrix.iloc[i, j]
    
                # 将节点对和相关系数添加到DataFrame中
                df = df.append({'node_0': node1, 'node_1': node2, 'weight': correlation}, ignore_index=True)
        return df
    
    graph_df = get_graph(corr_df)
    print(graph_df)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    这段代码将遍历相关系数矩阵的每对节点,提取节点名称和相关系数,并将它们添加到一个新的DataFrame中。最终,你将得到一个包含了三列数据的DataFrame,其中每一行都代表了两个节点之间的相关系数。

    要查找相关系数DataFrame中大于0的元素的下标,你可以使用numpy库的np.where函数来实现。以下是一个示例代码:

    import numpy as np
    
    # 假设你的相关系数DataFrame叫做df,假设相关系数在 'Correlation' 列中
    # 创建一个布尔掩码,标记大于0的相关系数
    mask = df['Correlation'] > 0
    
    # 使用 np.where 获取满足条件的元素的行和列索引
    rows, cols = np.where(mask)
    
    # 打印满足条件的元素的行和列索引
    for row, col in zip(rows, cols):
        print(f'行索引:{row}, 列索引:{col}')
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    这段代码首先创建了一个布尔掩码 mask,它标记了相关系数大于0的位置。然后,使用 np.where 函数来获取满足条件的元素的行和列索引,最后循环遍历并打印这些索引。

    请注意,上述代码假设你的DataFrame中相关系数存储在 ‘Correlation’ 列中。如果你的列名称不同,需要相应地替换列名称。

  • 相关阅读:
    chrome历史版本下载
    聚力打造四个“高地”,携手合作伙伴共铸国云
    共轴双旋翼无人机动力测试解决方案
    Python3-批量重命名指定目录中的一组文件,更改其扩展名
    【022】Vue+Springboot+mysql汽车销售系统课设(含源码、数据库、运行教程、实验报告)
    python:切分多个串联但单个内部按大小排列数据列表
    华为机试真题 C++ 实现【过滤组合字符串】【2022.11 Q4新题】
    钉钉自动打卡
    手把手带你入门 API 开发
    聚观早报 | 特斯拉发布赛博啤酒套装;小米汽车售价曝光
  • 原文地址:https://blog.csdn.net/weixin_39559994/article/details/133348027
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号