【问题标题】:Python datatable to correlation matrixPython数据表到相关矩阵
【发布时间】:2020-02-10 22:28:23
【问题描述】:

是否有与 Python Pandas 相同的 Python Datatable 等效的 corr() 函数 - 用于查找 Frame 列的相关矩阵?谢谢

【问题讨论】:

  • 根据the docs,去年12月在v0,10,0中添加了corr()函数“用于计算Frame的列之间的协方差和Pearson相关系数”。这就是你要找的东西吗?
  • 谢谢安德森。这有助于我当前的用例。但是,我正在寻找的是 Pandas 的 corr() 等效项,我们可以在其中执行 pandas_df.corr() 以一次性获取所有列的相关矩阵,而不必指定每个成对列。谢谢。

标签: python py-datatable


【解决方案1】:

一种选择是使用以下功能:

def frame_corr(dt_frame):
    numcols = [col for col in dt_frame if col.type.is_numeric]
    result = dt.rbind([dt_frame[:, [dt.corr(col1, col2) for col2 in numcols]] for col1 in numcols])
    result.names = dt_frame[:,numcols].names
    return result

输入数据

data = dt.Frame(x = np.random.normal(size=10),
         y = np.random.normal(size=10),
         z = np.random.normal(size=10)
        )

输出

frame_corr(data)
   |         x          y          z
   |   float64    float64    float64
-- + ---------  ---------  ---------
 0 |  1         -0.880012   0.26132 
 1 | -0.880012   1         -0.440515
 2 |  0.26132   -0.440515   1       
[3 rows x 3 columns]

data.to_pandas().corr()
          x         y         z
x  1.000000 -0.880012  0.261320
y -0.880012  1.000000 -0.440515
z  0.261320 -0.440515  1.000000

注意:is_numeric 在 1.1.0 版本中可用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多