辞書を正方行列に変換する方法を学びたいと思っています。私が読んだことから、これを数の少ない配列に変換し、それを再構成する必要があります。私は、ユーザーが入力する情報に基づいてこれを実行できるようにしたいので、形を変えたくありません。つまり、ユーザーが何人かの所有者や品種を入力しても正方行列を与えるコードが必要です。辞書を正方行列に変換する
注:この辞書の所有者と品種は、ユーザーの入力によって異なります。ユーザは100の名前と50の品種を入力することができ、または4つの名前と5つの品種を入力することができる。この例では、私は4つの名前と3つの犬を行いました。例えば
dict1 =
{'Bob VS Sarah': {'shepherd': 1,'collie': 5,'poodle': 8},
'Bob VS Ann': {'shepherd': 3,'collie': 2,'poodle': 1},
'Bob VS Jen': {'shepherd': 3,'collie': 2,'poodle': 2},
'Sarah VS Bob': {'shepherd': 3,'collie': 2,'poodle': 4},
'Sarah VS Ann': {'shepherd': 4,'collie': 6,'poodle': 3},
'Sarah VS Jen': {'shepherd': 1,'collie': 5,'poodle': 8},
'Jen VS Bob': {'shepherd': 4,'collie': 8,'poodle': 1},
'Jen VS Sarah': {'shepherd': 7,'collie': 9,'poodle': 2},
'Jen VS Ann': {'shepherd': 3,'collie': 7,'poodle': 2},
'Ann VS Bob': {'shepherd': 6,'collie': 2,'poodle': 5},
'Ann VS Sarah': {'shepherd': 0,'collie': 2,'poodle': 4},
'Ann VS Jen': {'shepherd': 2,'collie': 8,'poodle': 2},
'Bob VS Bob': {'shepherd': 3,'collie': 2,'poodle': 2},
'Sarah VS Sarah': {'shepherd': 3,'collie': 2,'poodle': 2},
'Ann VS Ann': {'shepherd': 13,'collie': 2,'poodle': 4},
'Jen VS Jen': {'shepherd': 9,'collie': 7,'poodle': 2}}
4人の所有者が存在するので、私は、(再び、ユーザが入力することができる犬の品種の任意の数のSO 3つの品種は、制限ではない)、4×4行列を求めています。
最終結果が欲しいと思っているものを入れていないと、通常は私は謝ります。私はdict1を作るために自分自身を誇りに思います:)。だから、辞書は以下のような形でなければなりませんが、私はどのように異なる品種を組み込むか分かりません。私のための難しい部分は、私は1つのマトリックスが必要なだけです。私はまた、行列のソルバnumpyを使用することを計画している、なぜ私は辞書から正方行列を取得する方法を把握したいと思います。
Bob Sarah Ann Jen
Bob
Sarah
Ann
Jen
あなたは何を明確でしたあなたは最終結果を望んでいますか?行列の 'Ann'とcol 'Ann'のような行は、 '{'shepherd':13、 'collie':2、 'poodle':4}'の値を持つべきですか? – gowrath
はい、(Ann、Ann)は{'shepherd':13、 'collie':2、 'poodle':4}になります。私はこれを直接配列に変換してから辞書に戻すかどうかはわかりません。 –