gpt4 book ai didi

python - 使用 Pandas 在矩阵中找到负对

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:55 25 4
gpt4 key购买 nike

我在 pandas 中使用 dataframe.cov() 得到了一个协方差矩阵,现在我想找到所有最负的一对(例如 v1 v3是矩阵中最负的一对,因为matrix[v1, v3]最小,然后是v1v3 被排除在下一个选择阶段)按升序排列,我想找到所有具有这种特征的夫妇。

这是我的矩阵:

            V1           V2           V3           V4           V5
V1 471.189543 404.059694 -59.847099 415.214121 -571.672083
V2 404.059694 4768.251838 3740.331544 557.050042 1750.542728
V3 -59.847099 3740.331544 6563.713527 -782.229345 3378.108799
V4 415.214121 557.050042 -782.229345 1949.914430 -582.306412
V5 -571.672083 1750.542728 3378.108799 -582.306412 3355.819315

最佳答案

import numpy as np
import pandas as pd
df = pd.DataFrame({'V1': [471.18954309999998, 404.05969449999998, -59.847098750000001, 415.21412069999997, -571.67208340000002], 'V2': [404.05969449999998, 4768.2518380000001, 3740.3315439999997, 557.05004150000002, 1750.5427280000001], 'V3': [-59.847098750000001, 3740.3315439999997, 6563.7135269999999, -782.22934510000005, 3378.1087990000001], 'V4': [415.21412069999997, 557.05004150000002, -782.22934510000005, 1949.91443, -582.30641220000007], 'V5': [-571.67208340000002, 1750.5427280000001, 3378.1087990000001, -582.30641220000007, 3355.8193149999997]}, index=['V1', 'V2', 'V3', 'V4', 'V5'])

result = df.stack()
result.name = 'cov'
result = result.reset_index()
result = result.loc[result['level_0'] < result['level_1']]
result = result.sort_values(by='cov')
print(result)

产量

   level_0 level_1          cov
13 V3 V4 -782.229345
19 V4 V5 -582.306412
4 V1 V5 -571.672083
2 V1 V3 -59.847099
1 V1 V2 404.059694
3 V1 V4 415.214121
8 V2 V4 557.050042
9 V2 V5 1750.542728
14 V3 V5 3378.108799
7 V2 V3 3740.331544

行按协方差升序排序。

关于python - 使用 Pandas 在矩阵中找到负对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38684026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com