gpt4 book ai didi

python - 相关矩阵的均值 - pandas dataframe

转载 作者:太空狗 更新时间:2023-10-30 02:12:40 24 4
gpt4 key购买 nike

我在 pandas python DataFrame 中有一个很大的相关矩阵:df (342, 342)。

如何计算上三角中所有数字的平均值、标准差等,不包括沿对角线的 1?

谢谢。

最佳答案

另一个潜在的单行答案:

In [1]: corr
Out[1]:
a b c d e
a 1.000000 0.022246 0.018614 0.022592 0.008520
b 0.022246 1.000000 0.033029 0.049714 -0.008243
c 0.018614 0.033029 1.000000 -0.016244 0.049010
d 0.022592 0.049714 -0.016244 1.000000 -0.015428
e 0.008520 -0.008243 0.049010 -0.015428 1.000000

In [2]: corr.values[np.triu_indices_from(corr.values,1)].mean()
Out[2]: 0.016381

编辑:添加性能指标

我的解决方案的性能:

In [3]: %timeit corr.values[np.triu_indices_from(corr.values,1)].mean()
10000 loops, best of 3: 48.1 us per loop

Theodros Zelleke 的单线解决方案的性能:

In [4]: %timeit corr.unstack().ix[zip(*np.triu_indices_from(corr, 1))].mean()
1000 loops, best of 3: 823 us per loop

DSM 解决方案的性能:

In [5]: def method1(df):
...: df2 = df.copy()
...: df2.values[np.tril_indices_from(df2)] = np.nan
...: return df2.unstack().mean()
...:

In [5]: %timeit method1(corr)
1000 loops, best of 3: 242 us per loop

关于python - 相关矩阵的均值 - pandas dataframe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14129979/

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