我使用以下代码获得了一个相关矩阵.

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(20,4))
df = df.corr()

假设df如下

    0         1         2         3
0  1.000000 -0.156813  0.294344 -0.034569
1 -0.156813  1.000000 -0.238828  0.222677
2  0.294344 -0.238828  1.000000  0.071389
3 -0.034569  0.222677  0.071389  1.000000

由于[0,1,3]和[1,2,3]内的所有相关性都在0.23以下,而[0,3],[1,2]等其他子集只包含两个元素,所以上述相关矩阵的相关性低于0.23的最大子集是[0,1,3]和[1,2,3].

如果df是200*200矩阵,找到这样的子集的最快方法是什么?勾选所有2^200种可能性太慢.

推荐答案

看起来您想要创建一个图表并找到它的集团.

你可以用networkx‘S find_clique转换成from_pandas_adjacency:

import networkx as nx

G = nx.from_pandas_adjacency(df.lt(0.23))

cliques = list(nx.find_cliques(G))

输出:

[[1, 3, 0], [1, 3, 2]]

你的图表:

enter image description here

Python相关问答推荐

aiohTTP与pytest的奇怪行为

在IIS中运行的FastAPI-获取权限错误:[Win错误10013]试图以其访问权限禁止的方式访问插槽

Tokenizer Docker:无法为Tokenizer构建轮子,这是安装pyproject.toml项目所需的

为什么我的代码会进入无限循环?

Python在通过Inbox调用时给出不同的响应

尽管进程输出错误消息,subProcess.check_call的CalledProcess错误.stderr为无

如何匹配3D圆柱体的轴和半径?

绘制系列时如何反转轴?

如何将新的SQL服务器功能映射到SQL Alchemy的ORM

如何使用上下文管理器创建类的实例?

rame中不兼容的d类型

如何让剧作家等待Python中出现特定cookie(然后返回它)?

如何访问所有文件,例如环境变量

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

我如何使法国在 map 中完全透明的代码?

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

pyscript中的压痕问题

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

考虑到同一天和前2天的前2个数值,如何估算电力时间序列数据中的缺失值?

在Python中使用yaml渲染(多行字符串)