是否存在用于创建矩阵的numpy广播解决方案,该矩阵输出DataFrame中所有列之间的标准差?
以下解决方案非常有用,但仅适用于平均差异(例如独立性等)Pandas - Creating Difference Matrix from Data Frame .
感谢@divakar,@ yayhan,@ jezrael和其他人参与讨论
输入将是DfA
0 A1 B1 C1
1 8.01 9.29 7.31
2 8.23 9.05 7.46
3 8.16 9.68 7.34
4 8.27 8.95 7.05
2期望输出DfM和DfStd,其中每列之间的差异的均值和stdev .
0 St1 St2 St3
1 a1-a1 b1-a1 c1-a1
2 a1-b1 b1-b1 c1-b1
3 a1-c1 b1-c1 c1-c1
我能够使用上一篇文章中描述的np.subtract.outer函数派生平均值矩阵,运行:
[in]:arrmean = np.subtract.outer(*[dfA.mean()]*2).T
[out]: a 3x3 arrear with 9 elements
这是有效的,因为diff的方法产生与均值差异相同的结果 . 对于 Std
,这种关系并不成立 . 使用 np.subtract.outer(*[dfA.std()]*2).T
会产生不正确的矩阵结果 . 我试图用 [np.std(dfA['A1'] - dfA['B1'])
替换 [dfA.std()]
,但是产生1x1的欠款,零值(明显错误)
有任何想法吗?
我手动派生了解决方案,但非常感谢脚本 .