マトリクス形式 (配列) から スプレッド形式 (表) に変換するときも numpy.meshgrid が役立つ
マトリクス形式(配列)のデータをスプレッド形式(表)に変換したい場合がある。
例えば下のような配列を、、
[[0.36363082, 0.00332102, 0.14533355],
[0.11039035, 0.95780551, 0.48281694],
[0.44771602, 0.94823649, 0.36095112]]
↓ こんなふうな表にしたいという意味。
row
|
col
|
val
|
|
---|---|---|---|
0 | 0 | 0 | 0.190805 |
1 | 0 | 1 | 0.599887 |
2 | 0 | 2 | 0.209723 |
3 | 1 | 0 | 0.105745 |
4 | 1 | 1 | 0.219456 |
5 | 1 | 2 | 0.198315 |
6 | 2 | 0 | 0.671719 |
7 | 2 | 1 | 0.537687 |
8 | 2 | 2 | 0.012490 |
工夫なしに書くとこんなコードになる。
これにはもっと高速にできる方法があって、npのmeshgridという関数を使う。これを使うとfor構文が不要になり、コードもシンプル。
ちなみにこれ、前回書いた内容とやってる事はほとんど同じで、使い道がちがうだけでした。