私はpandas DataFrameオブジェクトに基づいてツーリングを開発しています。私は、それを行ごとにdtype( 'O')のリスト/ numpy配列に変換することなく、Scipyの疎な行列をDataFrameの列として保持したいと考えています。DataFrameカラムとしてScipyの疎な行列
パンダは、行列をスカラーとして扱い、インデックスを追加することを提案しているため、以下のスニペットは機能しません。行列の行インデックスにpd.RangeIndexを渡すと、行列はデータフレームのすべての行について繰り返されます(pandasはスカラーであるとみなします)。
df = pd.DataFrame(dict(X=list(ma)))
しかし、これは行方向CSRにマトリックスを切断する1行の各行列:
ma = scipy.sparse.rand(10, 100, 0.1, 'csr', dtype=np.float64)
df = pd.DataFrame(dict(X=ma))
これは、作業が行います。それで、元のマトリックスで作業したいと思うたびにvstackする必要があります。
任意のポインタ?私はdtype( 'O')を持っていると思われるpd.SeriesオブジェクトにCSRマトリックスをラップしようとしましたが、私は基底のデータがたくさんの配列などであると仮定しています。
返信いただきありがとう@hpaulj。私は実際にPandasを介してSciPy行列の列にアクセスすることに興味はなく、行全体または行列全体にアクセスすることには興味がありません。メモリレイアウトレベルでのndarrayと疎な行列型の不一致を理解しています。両方とも適合できる抽象概念があることを期待していました... 'list(ma)'は、少なくともCSRマトリクスの場合、元のCSRマトリックスの各行に対して1行のCSR行列を作成します。 –
データフレームの列として、密度の高いまたは疎な行列(2d)をどのように使用できるかはわかりません。私は 'pandas'が2次元配列の列を等しい数の列にマップしようとしますと信じています。セルはオブジェクトポインタでもよいが、列全体ではありません。しかし、私はパンダを知っているよりもずっと気分が悪くて、サイフィを知っています。 – hpaulj
もう一度ありがとうございます。わかりました。非常に行が、例えば、に対応する特徴ベクトルのCSR行列を格納するための便利な場所であろうか。 DataFrameの別の列にあるラベルで、基になるCSRマトリックスにアクセスすることはできません。私が推測することはできません:) –