2016-11-29 34 views
3

私は大きなパンダのDataFrameを持っています。これはヘッダーとインデックスを持つ正方行列で、pandasの能力を使ってその行列の逆数を計算しようとしています。 。パンダを使って行列の逆行列を計算する

私は自分のデータフレームの見出しを保持するためにpandasフレームワーク内にとどまりたいです。私はpd.as_matrix関数を使うことができましたが、それがndarrayに変わり、見出しから提供されるすべての情報が失われてしまいました。

提案がありますか?

答えて

5

は、データフレーム、私はfoのpinvを使用df

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

enter image description here

(さんが夢中になるわけにはいきません、numpyのと)逆の計算

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

enter image description here

予告考えますR擬似逆

し、 "numpyのを、のはクレイジー得るわけにはいきません" の部分について

df_inv.dot(df) 

enter image description here

+1

+1をご確認ください。多くの人々は、パンダが薄暗い色の上に薄い抽象層であることを理解していないようです。 –

+0

これはまさに私が必要なものです、ありがとう! –

+0

私はnp.linalg.pinvを使う最初のステップを手に入れました。しかし、これの結果は逆です、そうですか?次に、次のステップdf_inv.dot(df)が必要なのはなぜですか?ここで何を確認していますか? – TDS

0

見出しを保存し、pd.as_matrix関数を使って逆行列を得て、見出しをリセットできますか?

関連する問題