Pandas-从数据框创建差异矩阵

Pandas-从数据框创建差异矩阵,第1张

Pandas-从数据框创建差异矩阵

这是numpy广播的标准用例:

df['Values'].values - df['Values'].values[:, None]Out: array([[  0. , -30.7, -14.5],       [ 30.7,   0. ,  16.2],       [ 14.5, -16.2,   0. ]])

我们使用values属性访问基础的numpy数组,并

[:, None]
引入了一个新轴,因此结果是二维的。

您可以将其与原始系列结合使用:

arr = df['Values'].values - df['Values'].values[:, None]pd.concat((df['Country'], pd.Dataframe(arr, columns=df['Country'])), axis=1)Out:   Country    GB    JP    US0      GB   0.0 -30.7 -14.51      JP  30.7   0.0  16.22      US  14.5 -16.2   0.0

由于@Divakar,也可以使用以下命令生成数组:

arr = np.subtract.outer(*[df.Values]*2).T

在这里,我们呼吁

.outer
subtract
ufunc,它适用于所有对其输入。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5645467.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存