Jon*_*han 4 python numpy matrix
我有一个相关矩阵,但指定为对,例如:
cm = pd.DataFrame({'name1': ['A', 'A', 'B'],
'name2': ['B', 'C', 'C'],
'corr': [0.1, 0.2, 0.3]})
cm
name1 name2 corr
0 A B 0.1
1 A C 0.2
2 B C 0.3
Run Code Online (Sandbox Code Playgroud)
将它变成一个 numpy 二维数组相关矩阵的最简单方法是什么?
A B C
A 1.0 0.1 0.2
B 0.1 1.0 0.3
C 0.2 0.3 1.0
Run Code Online (Sandbox Code Playgroud)
不确定,pure numpy因为您正在处理熊猫数据框。这是一个纯熊猫解决方案:
s = cm.pivot(*cm)
ret = s.add(s.T, fill_value=0).fillna(1)
Run Code Online (Sandbox Code Playgroud)
输出:
A B C
A 1.0 0.1 0.2
B 0.1 1.0 0.3
C 0.2 0.3 1.0
Run Code Online (Sandbox Code Playgroud)
额外:对于反向(ret如上)
(ret.where(np.triu(np.ones(ret.shape, dtype=bool),1))
.stack()
.reset_index(name='corr')
)
Run Code Online (Sandbox Code Playgroud)
输出:
level_0 level_1 corr
0 A B 0.1
1 A C 0.2
2 B C 0.3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |