用pandas计算矩阵的逆矩阵

Pol*_*o.B 8 python numpy matrix pandas

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

我想留在一个熊猫框架内,以保持我的数据帧的标题.我可以使用pd.as_matrix函数,但是把它变成了一个ndarray,我放弃了标题提供的所有信息.

有什么建议?

piR*_*red 20

考虑数据帧 df

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

在此输入图像描述

计算逆(用numpy,让我们不要疯了)

df_inv = pd.DataFrame(np.linalg.pinv(df.values), df.columns, df.index)
df_inv
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

注意我pinv用于伪逆

然后检查

df_inv.dot(df)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • +1 为“使用 numpy,让我们不要发疯”部分。很多人似乎不明白,pandas 只是 numpy 之上的一个薄抽象层。 (4认同)
  • @TDS 我们正在检查矩阵乘法是否产生单位矩阵。确实如此。 (2认同)