【问题标题】:Calculating the inverse of a matrix with pandas用熊猫计算矩阵的逆
【发布时间】:2017-04-13 00:47:46
【问题描述】:

我有一个大的 pandas.DataFrame - 它是一个带有标题和索引的方阵,我正在尝试使用 pandas 的功能来计算该矩阵的逆矩阵,而不直接通过 numpy。

我想留在 pandas 框架中以保留我的数据框的标题。我可以使用 pandas.as_matrix() 函数,但这会将它变成一个 ndarray,并且我会丢失标题提供的所有信息。

有什么建议吗?

【问题讨论】:

    标签: python pandas numpy matrix


    【解决方案1】:

    考虑数据框df

    np.random.seed([3,1415])
    df = pd.DataFrame(np.random.rand(3, 3), list('abc'), list('xyz'))
    df
    

    计算逆数(用 numpy,别发疯了)

    df_inv = pd.DataFrame(np.linalg.pinv(df.values), df.columns, df.index)
    df_inv
    

    请注意,我使用 pinv 作为伪逆

    然后检查

    df_inv.dot(df)
    

    【讨论】:

    • +1 表示“使用 numpy,让我们不要发疯”部分。很多人似乎不明白 pandas 只是 numpy 之上的一个薄抽象层。
    • 我得到了使用 np.linalg.pinv 的第一步。但结果是相反的,对吧?那为什么我们需要下一步 df_inv.dot(df)?我们在这里检查什么?
    • @TDS 我们正在检查矩阵乘法是否产生单位矩阵。确实如此。
    猜你喜欢
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多